Data & operator = (const Data& data);
/**
- * @brief A virtual destructor
- */
- virtual ~Data() = default;
-
- /**
* @brief Checks if the current node is resolved
*
* @return true if resolved, false otherwise.
} else {
const auto precision = details::convertPrecision(output.get_element_type());
const auto layout = TensorDesc::getLayoutByDims(dims);
- ptr.reset(new NGraphData(this, outName, {precision, dims, layout}));
+ ptr.reset(new Data(outName, {precision, dims, layout}));
}
}
}
}
-CNNNetworkNGraphImpl::~CNNNetworkNGraphImpl() {
- for (auto& data : _data) {
- if (!data.second) continue;
- if (auto nData = std::dynamic_pointer_cast<NGraphData>(data.second)) {
- nData->reset();
- }
- }
-}
-
void CNNNetworkNGraphImpl::setInputInfo(InputInfo::Ptr data) {
if (cnnNetwork) cnnNetwork->setInputInfo(data);
_inputData[data->name()] = data;
class INFERENCE_ENGINE_API_CLASS(CNNNetworkNGraphImpl): public ICNNNetwork {
public:
CNNNetworkNGraphImpl(const std::shared_ptr<::ngraph::Function>& nGraph);
- ~CNNNetworkNGraphImpl() override;
+ ~CNNNetworkNGraphImpl() override = default;
void getOutputsInfo(std::map<std::string, DataPtr>& out) const noexcept override;
CNNNetworkImpl* cnnNetworkImpl,
bool keep_constant_inputs);
- friend class NGraphData;
-
/**
* @brief Reshape on the same shape
*/
}
};
-IE_SUPPRESS_DEPRECATED_START
-
-/**
- * @brief Special derived class of Data which converts CNNNetworkNGraphImpl to CNNLayer-based representation
- * in case if a user called Data::getCreatorLayer or Data::getInputTo
- */
-class NGraphData : public Data {
-public:
- using Ptr = std::shared_ptr<NGraphData>;
-
- NGraphData(CNNNetworkNGraphImpl* network, const std::string& name, const TensorDesc& desc)
- : Data(name, desc), network(network) {}
-
- void reset() {
- network = nullptr;
- }
-
- CNNLayerWeakPtr& getCreatorLayer();
-
- std::map<std::string, CNNLayerPtr>& getInputTo();
-
-private:
- CNNNetworkNGraphImpl* network;
-};
-
-IE_SUPPRESS_DEPRECATED_END
-
} // namespace details
} // namespace InferenceEngine
// compatibility
CNNLayerWeakPtr& InferenceEngine::getCreatorLayer(const DataPtr & data) {
- if (auto ndata = std::dynamic_pointer_cast<details::NGraphData>(data)) {
- return ndata->getCreatorLayer();
- } else {
- return data->_impl->creatorLayer;
- }
+ return data->_impl->creatorLayer;
}
std::map<std::string, CNNLayerPtr>& InferenceEngine::getInputTo(const DataPtr & data) {
std::map<std::string, CNNLayerPtr>& InferenceEngine::getInputTo(Data * data) {
return data->_impl->inputTo;
}
-
-CNNLayerWeakPtr& details::NGraphData::getCreatorLayer() {
- return _impl->creatorLayer;
-}
-
-std::map<std::string, CNNLayerPtr>& details::NGraphData::getInputTo() {
- return _impl->inputTo;
-}
std::string outName = layer->get_friendly_name();
if (layer->get_output_size() != 1) outName += "." + std::to_string(i);
DataPtr &ptr = cnnNetworkImpl->getData(outName.c_str());
- SizeVector dims;
- dims = layer->get_output_shape(i);
+ SizeVector dims = layer->get_output_shape(i);
for (const auto &dim : dims) {
if (!dim)
THROW_IE_EXCEPTION << cnnLayer->type << " layer " << cnnLayer->name
}
if (!ptr && nGraphImpl && nGraphImpl->_data.find(outName) != nGraphImpl->_data.end()) {
ptr = nGraphImpl->_data.at(outName);
- if (auto nData = std::dynamic_pointer_cast<InferenceEngine::details::NGraphData>(ptr)) {
+ {
const auto layout =
- dims.size() == nData->getTensorDesc().getDims().size() ?
- nData->getTensorDesc().getLayout() :
+ dims.size() == ptr->getTensorDesc().getDims().size() ?
+ ptr->getTensorDesc().getLayout() :
TensorDesc::getLayoutByDims(dims);
- nData->reset();
- nData->reshape(dims, layout);
+ ptr->reshape(dims, layout);
}
cnnNetworkImpl->addData(outName.c_str(), ptr);
}