diff --git a/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api.pxd b/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api.pxd index 965d796e157..7a920059bbc 100644 --- a/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api.pxd +++ b/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api.pxd @@ -62,9 +62,6 @@ cdef class DataPtr: cdef class CDataPtr: cdef C.CDataPtr _ptr -cdef class IENetLayer: - cdef C.CNNLayerPtr _ptr - cdef class TensorDesc: cdef C.CTensorDesc impl diff --git a/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api.pyx b/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api.pyx index 21cd5aaeeb4..67c2ed628b2 100644 --- a/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api.pyx +++ b/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api.pyx @@ -730,41 +730,6 @@ cdef class DataPtr: def initialized(self): return deref(self._ptr).isInitialized() - @property - def creator_layer(self): - warnings.warn("'creator_layer' property of DataPtr class is deprecated and is going to be removed in 2021.2.", - DeprecationWarning) - cdef C.CNNLayerWeakPtr _l_ptr - cdef IENetLayer creator_layer - - if self._ptr_network != NULL: - deref(self._ptr_network).convertToOldRepresentation() - _l_ptr = C.getCreatorLayer(self._ptr) - - creator_layer = IENetLayer() - if _l_ptr.lock() != NULL: - creator_layer._ptr = _l_ptr.lock() - else: - raise RuntimeError("Creator IENetLayer of DataPtr object with name {} already released!".format(self.name)) - return creator_layer - - @property - def input_to(self): - warnings.warn("'input_to' property of DataPtr class is deprecated and is going to be removed in 2021.2.", - DeprecationWarning) - cdef map[string, C.CNNLayerPtr] _l_ptr_map - cdef IENetLayer input_to - - if self._ptr_network != NULL: - deref(self._ptr_network).convertToOldRepresentation() - _l_ptr_map = C.getInputTo(self._ptr) - - input_to_list = [] - for layer in _l_ptr_map: - input_to = IENetLayer() - input_to._ptr = layer.second - input_to_list.append(input_to) - return input_to_list ## This class is the layer constant data representation. Provides same interface as DataPtr object except properties setters cdef class CDataPtr: @@ -1260,117 +1225,6 @@ cdef class InferRequest: self.input_blobs[k].buffer[:] = v -## This class represents a main layer information and providing setters allowing to modify layer properties -# -# \note This class is deprecated: for working with layers, please, use nGraph Python API. -# This class is going to be removed in 2021.2 -# -cdef class IENetLayer: - ## Name of the layer - @property - def name(self): - return deref(self._ptr).name.decode() - - ## Layer type - @property - def type(self): - return deref(self._ptr).type.decode() - - - ## Layer affinity set by user or a default affinity may be setted using `IECore.query_network() method` - # which returns dictionary {layer_name : device}. - # The affinity attribute provides getter and setter interfaces, so the layer affinity can be modified directly. - # For example:\n - # ```python - # ie = IECore() - # net = ie.read_network(model=path_to_xml_file, weights=path_to_bin_file) - # layers_map = ie.query_network(network=net, device_name="HETERO:GPU,CPU") - # layers = net.layers - # for layer, device in layers_map.items(): - # layers[layer].affinity = device - # ``` - @property - def affinity(self): - return deref(self._ptr).affinity.decode() - @affinity.setter - def affinity(self, target_affinity): - deref(self._ptr).affinity = target_affinity.encode() - - ## Layer specific parameters. Provides getter and setter interfaces to get and modify layer parameters. - # Please note that some modifications can be ignored and/or overwritten by target plugin (e.g. modification of - # convolution kernel size will be reflected in layer parameters but finally the plugin will ignore it and will - # use initial kernel size) - @property - def params(self): - return {k.decode(): v.decode() for k, v in deref(self._ptr).params} - @params.setter - def params(self, new_params): - deref(self._ptr).params = dict_to_c_map(new_params) - - ## Returns a list, which contains names of layers preceding this layer - @property - def parents(self): - cdef vector[C.DataWeakPtr] c_inputs = deref(self._ptr).insData - parents = [] - for l in c_inputs: - if l.lock() != NULL: - parents.append(deref(l.lock()).getName().decode()) - else: - raise RuntimeError("Input Data of layer {} already released!".format(self.name)) - return parents - ## Returns a list, which contains names of layers following this layer - @property - def children(self): - cdef vector[C.DataPtr] c_outs = deref(self._ptr).outData - children = [] - cdef map[string, C.CNNLayerPtr] _l_ptr_map - input_to_list = [] - for l in c_outs: - _l_ptr_map = C.getInputTo(l) - for layer in _l_ptr_map: - input_to_list.append(deref(layer.second).name.decode()) - return input_to_list - - ## Returns a list of DataPtr objects representing the output data of the layer on corresponding port - @property - def out_data(self): - cdef vector[C.DataPtr] c_outputs = deref(self._ptr).outData - cdef DataPtr data_ptr - out_data = [] - for output in c_outputs: - data_ptr = DataPtr() - data_ptr._ptr = output - out_data.append(data_ptr) - return out_data - ## Returns a list of DataPtr objects representing the input data of the layer on corresponding port - @property - def in_data(self): - cdef vector[C.DataWeakPtr] c_inputs = deref(self._ptr).insData - cdef DataPtr data_ptr - in_data = [] - for input in c_inputs: - data_ptr = DataPtr() - if input.lock() != NULL: - data_ptr._ptr = input.lock() - else: - raise RuntimeError("Input Data of layer {} already released!".format(self.name)) - in_data.append(data_ptr) - return in_data - - ## Dictionary with layer arbitrary layer blobs including weights and biases as any. - @property - def blobs(self): - cdef map[string, CBlob.Ptr] c_blobs_map - c_blobs_map = deref(self._ptr).blobs - blobs_map = {} - cdef BlobBuffer weights_buffer - for blob in c_blobs_map: - weights_buffer = BlobBuffer() - weights_buffer.reset(blob.second) - blobs_map[blob.first.decode()] = weights_buffer.to_numpy() - return blobs_map - - ## This class contains the information about the network model read from IR and allows you to manipulate with # some model parameters such as layers affinity and output layers. cdef class IENetwork: @@ -1512,26 +1366,6 @@ cdef class IENetwork: raise AttributeError("Invalid batch size {}! Batch size should be positive integer value".format(batch)) self.impl.setBatch(batch) - ## \note The property is deprecated. Please use get_ops()/get_ordered_ops() methods - # from nGraph Python API. - # This property will be removed in 2021.2. - # - # Return dictionary that maps network layer names in topological order to IENetLayer - # objects containing layer properties - @property - def layers(self): - warnings.warn("'layers' property of IENetwork class is deprecated. " - "For iteration over network please use get_ops()/get_ordered_ops() methods " - "from nGraph Python API", - DeprecationWarning) - cdef vector[C.CNNLayerPtr] c_layers = self.impl.getLayers() - layers = OrderedDict() - cdef IENetLayer net_l - for l in c_layers: - net_l = IENetLayer() - net_l._ptr = l - layers[deref(l).name.decode()] = net_l - return layers ## Marks any intermediate layer as output layer to retrieve the inference results from the specified layers. # @param outputs: List of layers to be set as model outputs. The list can contain strings with layer names to be set diff --git a/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api_impl.cpp b/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api_impl.cpp index a40f598c557..da37e6cd8c4 100644 --- a/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api_impl.cpp +++ b/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api_impl.cpp @@ -5,8 +5,6 @@ #include "ie_api_impl.hpp" #include "hetero/hetero_plugin_config.hpp" #include "ie_iinfer_request.hpp" -#include -#include const std::string EXPORTED_NETWORK_NAME = "undefined"; std::map precision_map = {{"FP32", InferenceEngine::Precision::FP32}, @@ -209,26 +207,6 @@ void InferenceEnginePython::IENetwork::serialize(const std::string &path_to_xml, actual->serialize(path_to_xml, path_to_bin); } -void InferenceEnginePython::IENetwork::convertToOldRepresentation() { - if (actual->getFunction()) { - // convert to old representation - auto convertedNetwork = std::make_shared(*actual); - actual = std::make_shared(convertedNetwork); - } -} - -const std::vector -InferenceEnginePython::IENetwork::getLayers() { - convertToOldRepresentation(); - IE_SUPPRESS_DEPRECATED_START - std::vector result; - std::vector sorted_layers = InferenceEngine::details::CNNNetSortTopologically(*actual); - for (const auto &layer : sorted_layers) { - result.emplace_back(layer); - } - return result; - IE_SUPPRESS_DEPRECATED_END -} PyObject* InferenceEnginePython::IENetwork::getFunction() { const char * py_capsule_name = "ngraph_function"; diff --git a/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api_impl.hpp b/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api_impl.hpp index 3e6a8634117..167091b618f 100644 --- a/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api_impl.hpp +++ b/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api_impl.hpp @@ -22,7 +22,6 @@ #include #include -#include #include typedef std::chrono::high_resolution_clock Time; @@ -51,8 +50,6 @@ struct IENetwork { void addOutput(const std::string &out_layer, size_t port_id); - const std::vector getLayers(); - const std::map getInputsInfo(); const std::map getInputs(); diff --git a/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api_impl_defs.pxd b/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api_impl_defs.pxd index 37c52a3b279..d11d8b526a8 100644 --- a/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api_impl_defs.pxd +++ b/inference-engine/ie_bridges/python/src/openvino/inference_engine/ie_api_impl_defs.pxd @@ -90,20 +90,6 @@ cdef extern from "" namespace "InferenceEngine": @staticmethod const Precision FromStr(const string& str) - cdef cppclass CNNLayer: - string name - string type - Precision precision - vector[DataPtr] outData - vector[DataWeakPtr] insData - string affinity - map[string, string] params - map[string, CBlob.Ptr] blobs - - ctypedef weak_ptr[CNNLayer] CNNLayerWeakPtr - ctypedef shared_ptr[CNNLayer] CNNLayerPtr - - cdef struct apiVersion: int minor int major @@ -141,10 +127,6 @@ cdef extern from "" namespace "InferenceEngine": BLOCKED -cdef extern from "" namespace "InferenceEngine": - cdef weak_ptr[CNNLayer] getCreatorLayer(const shared_ptr[Data] & data) - map[string, shared_ptr[CNNLayer]] & getInputTo(const shared_ptr[Data] & data) - cdef extern from "ie_api_impl.hpp" namespace "InferenceEnginePython": cdef cppclass ProfileInfo: @@ -180,7 +162,6 @@ cdef extern from "ie_api_impl.hpp" namespace "InferenceEnginePython": size_t batch_size string precision map[string, vector[size_t]] inputs - const vector[CNNLayerPtr] getLayers() except + const map[string, InputInfo.Ptr] getInputsInfo() except + const map[string, DataPtr] getInputs() except + map[string, DataPtr] getOutputs() except + diff --git a/inference-engine/ie_bridges/python/tests/test_DataPtr.py b/inference-engine/ie_bridges/python/tests/test_DataPtr.py index 73dda3feacc..f1813e80f71 100644 --- a/inference-engine/ie_bridges/python/tests/test_DataPtr.py +++ b/inference-engine/ie_bridges/python/tests/test_DataPtr.py @@ -1,7 +1,6 @@ import pytest -import warnings -from openvino.inference_engine import IECore, IENetLayer, DataPtr +from openvino.inference_engine import IECore, DataPtr from conftest import model_path @@ -11,102 +10,33 @@ test_net_xml, test_net_bin = model_path() def layer_out_data(): ie = IECore() net = ie.read_network(model=test_net_xml, weights=test_net_bin) - return net.layers['19/Fused_Add_'].out_data[0] + return net.outputs['fc_out'] -def test_name(recwarn): - warnings.simplefilter("always") - assert layer_out_data().name == "19/Fused_Add_", "Incorrect name for layer '19/Fused_Add_'" - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) +def test_name(): + assert layer_out_data().name == 'fc_out', "Incorrect name for layer 'fc_out'" -def test_precision(recwarn): - warnings.simplefilter("always") - assert layer_out_data().precision == "FP32", "Incorrect precision for layer '19/Fused_Add_'" - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) +def test_precision(): + assert layer_out_data().precision == "FP32", "Incorrect precision for layer 'fc_out'" -def test_precision_setter(recwarn): - warnings.simplefilter("always") +def test_precision_setter(): ie = IECore() net = ie.read_network(model=test_net_xml, weights=test_net_bin) - net.layers['19/Fused_Add_'].out_data[0].precision = "I8" - assert net.layers['19/Fused_Add_'].out_data[0].precision == "I8", "Incorrect precision for layer '19/Fused_Add_'" - assert len(recwarn) == 2 - assert recwarn.pop(DeprecationWarning) + net.outputs['fc_out'].precision = "I8" + assert net.outputs['fc_out'].precision == "I8", "Incorrect precision for layer 'fc_out'" -def test_incorrect_precision_setter(recwarn): - warnings.simplefilter("always") +def test_incorrect_precision_setter(): with pytest.raises(ValueError) as e: layer_out_data().precision = "123" assert "Unsupported precision 123! List of supported precisions:" in str(e.value) - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) -def test_layout(recwarn): - warnings.simplefilter("always") - assert layer_out_data().layout == "NCHW", "Incorrect layout for layer '19/Fused_Add_'" - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) +def test_layout(): + assert layer_out_data().layout == "NC", "Incorrect layout for layer 'fc_out'" -def test_initialized(recwarn): - warnings.simplefilter("always") - assert layer_out_data().initialized, "Incorrect value for initialized property for layer '19/Fused_Add_'" - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) - - -def test_input_to(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - input_to = net.layers['26'].out_data[0].input_to - assert len(input_to) == 1 - assert input_to[0].name == '27' - assert len(recwarn) == 2 - assert recwarn.pop(DeprecationWarning) - - -def test_input_to_via_input_info(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - input_infos = net.input_info - assert len(input_infos) == 1 - input_to = input_infos['data'].input_data.input_to - assert len(input_to) == 1 - assert input_to[0].name == '19/Fused_Add_' - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) - - -def test_input_to_via_inputs(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - inputs = net.inputs - assert len(inputs) == 1 - input_to = inputs['data'].input_to - assert len(input_to) == 1 - assert input_to[0].name == '19/Fused_Add_' - assert len(recwarn) == 2 - assert recwarn.pop(DeprecationWarning) - - -def test_creator_layer(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - outputs = net.outputs - assert len(outputs) == 1 - creator_layer = outputs['fc_out'].creator_layer - params = creator_layer.params - params['originalLayersNames'] == 'fc_out' - params['axis'] == '1' - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) +def test_initialized(): + assert layer_out_data().initialized, "Incorrect value for initialized property for layer 'fc_out'" diff --git a/inference-engine/ie_bridges/python/tests/test_IECore.py b/inference-engine/ie_bridges/python/tests/test_IECore.py index f5b0b16306b..90c41209a74 100644 --- a/inference-engine/ie_bridges/python/tests/test_IECore.py +++ b/inference-engine/ie_bridges/python/tests/test_IECore.py @@ -51,15 +51,17 @@ def test_load_network_wrong_device(): assert 'Device with "BLA" name is not registered in the InferenceEngine' in str(e.value) -@pytest.mark.skip(reason="IENetwork.layers return not all layers in case of ngraph representation due to inner conversion into legacy representation") -def test_query_network(device, recwarn): +def test_query_network(device): + import ngraph as ng ie = IECore() net = ie.read_network(model=test_net_xml, weights=test_net_bin) query_res = ie.query_network(net, device) - assert net.layers.keys() == query_res.keys(), "Not all network layers present in query_network results" + func_net = ng.function_from_cnn(net) + ops_net = func_net.get_ordered_ops() + ops_net_names = [op.friendly_name for op in ops_net] + assert [key for key in query_res.keys() if key not in ops_net_names] == [], \ + "Not all network layers present in query_network results" assert next(iter(set(query_res.values()))) == device, "Wrong device for some layers" - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) @pytest.mark.skipif(os.environ.get("TEST_DEVICE", "CPU") != "CPU", reason="Device independent test") @@ -98,7 +100,6 @@ def test_unregister_plugin(device): assert 'Device with "{}" name is not registered in the InferenceEngine'.format(device) in str(e.value) -@pytest.mark.skip(reason="Need to figure out segmentation fault cause.") def test_available_devices(device): ie = IECore() devices = ie.available_devices @@ -209,17 +210,19 @@ def test_read_net_from_buffer(): assert isinstance(net, IENetwork) -def test_net_from_buffer_valid(recwarn): +def test_net_from_buffer_valid(): ie = IECore() with open(test_net_bin, 'rb') as f: bin = f.read() with open(model_path()[0], 'rb') as f: xml = f.read() net = ie.read_network(model=xml, weights=bin, init_from_buffer=True) - net2 = ie.read_network(model=test_net_xml, weights=test_net_bin) - for name, layer in net.layers.items(): - for blob, data in layer.blobs.items(): - assert np.allclose(data, net2.layers[name].blobs[blob]), \ - "Incorrect weights for layer {} and blob {}".format(name, blob) - assert len(recwarn) == 2 - assert recwarn.pop(DeprecationWarning) + ref_net = ie.read_network(model=test_net_xml, weights=test_net_bin) + assert net.name == ref_net.name + assert net.batch_size == ref_net.batch_size + ii_net = net.input_info + ii_net2 = ref_net.input_info + o_net = net.outputs + o_net2 = ref_net.outputs + assert ii_net.keys() == ii_net2.keys() + assert o_net.keys() == o_net2.keys() diff --git a/inference-engine/ie_bridges/python/tests/test_IENetLayer.py b/inference-engine/ie_bridges/python/tests/test_IENetLayer.py deleted file mode 100644 index ea54245b05e..00000000000 --- a/inference-engine/ie_bridges/python/tests/test_IENetLayer.py +++ /dev/null @@ -1,124 +0,0 @@ -import warnings -import numpy - -from openvino.inference_engine import DataPtr, IECore -from conftest import model_path - - -test_net_xml, test_net_bin = model_path() - - -def test_name(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - assert net.layers['27'].name == "27" - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) - - -def test_type(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - assert net.layers['27'].type == "Pooling" - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) - - -def test_affinity_getter(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - assert net.layers['27'].affinity == "" - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) - - -def test_affinity_setter(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - net.layers['27'].affinity = "CPU" - assert net.layers['27'].affinity == "CPU" - assert len(recwarn) == 2 - assert recwarn.pop(DeprecationWarning) - - -def test_blobs(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - assert isinstance(net.layers['19/Fused_Add_'].blobs["biases"], numpy.ndarray) - assert isinstance(net.layers['19/Fused_Add_'].blobs["weights"], numpy.ndarray) - assert net.layers['19/Fused_Add_'].blobs["biases"].size != 0 - assert net.layers['19/Fused_Add_'].blobs["weights"].size != 0 - assert len(recwarn) == 4 - assert recwarn.pop(DeprecationWarning) - - -def test_params_getter(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - assert net.layers['27'].params == {"kernel" : "2,2", "pads_begin" : "0,0", - "pads_end" : "0,0", "rounding_type" : "floor", - "strides" : "2,2", "pool-method" : "max", - "originalLayersNames" : "27"} - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) - - -def test_params_setter(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - params = net.layers['27'].params - params.update({'PrimitivesPriority': 'cpu:ref_any'}) - net.layers['27'].params = params - assert net.layers['27'].params == {"kernel" : "2,2", "pads_begin" : "0,0", - "pads_end" : "0,0", "rounding_type" : "floor", - "strides" : "2,2", "pool-method" : "max", - "originalLayersNames" : "27", 'PrimitivesPriority': 'cpu:ref_any'} - assert len(recwarn) == 3 - assert recwarn.pop(DeprecationWarning) - - -def test_out_data(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - assert isinstance(net.layers['27'].out_data[0], DataPtr) - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) - - -def test_in_data(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - assert isinstance(net.layers['27'].in_data[0], DataPtr) - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) - - -def test_parents(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - parents = net.layers['27'].parents - assert len(parents) == 1 - assert(parents[0] == '26') - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) - - -def test_children(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - children = net.layers['26'].children - assert len(children) == 1 - assert(children[0] == '27') - assert len(recwarn) == 1 - assert recwarn.pop(DeprecationWarning) diff --git a/inference-engine/ie_bridges/python/tests/test_IENetwork.py b/inference-engine/ie_bridges/python/tests/test_IENetwork.py index 29175e5d86a..939c94789ee 100644 --- a/inference-engine/ie_bridges/python/tests/test_IENetwork.py +++ b/inference-engine/ie_bridges/python/tests/test_IENetwork.py @@ -3,8 +3,7 @@ import pytest import warnings import numpy as np -from openvino.inference_engine import IECore, IENetwork, IENetLayer, DataPtr, \ - InputInfoPtr, PreProcessInfo +from openvino.inference_engine import IECore, IENetwork, DataPtr, InputInfoPtr, PreProcessInfo from conftest import model_path @@ -181,30 +180,12 @@ def test_batch_size_after_reshape(): assert net.input_info['data'].input_data.shape == [8, 3, 32, 32] -def test_layers(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - layers_name = [key for key in net.layers] - assert sorted(layers_name) == ['19/Fused_Add_', '21', '22', '23', '24/Fused_Add_', - '26', '27', '29', 'data', 'fc_out'] - assert isinstance(net.layers['19/Fused_Add_'], IENetLayer) - assert len(recwarn) == 2 - assert recwarn.pop(DeprecationWarning) - - -@pytest.mark.skip(reason="Test is failed due-to ngraph conversion") -def test_serialize(recwarn): - warnings.simplefilter("always") - ie = IECore() - net = ie.read_network(model=test_net_xml, weights=test_net_bin) - net.serialize("./serialized_net.xml", "./serialized_net.bin") - serialized_net = ie.read_network(model="./serialized_net.xml", weights="./serialized_net.bin") - assert net.layers.keys() == serialized_net.layers.keys() - os.remove("./serialized_net.xml") - os.remove("./serialized_net.bin") - assert len(recwarn) == 2 - assert recwarn.pop(DeprecationWarning) +def test_serialize(): + with pytest.raises(RuntimeError) as excinfo: + ie = IECore() + net = ie.read_network(model=test_net_xml, weights=test_net_bin) + net.serialize("./serialized_net.xml", "./serialized_net.bin") + assert "The serialize for IR v10 is not implemented" in str(excinfo.value) def test_reshape(): @@ -228,18 +209,21 @@ def test_read_net_from_buffer_deprecated(): def test_net_from_buffer_valid_deprecated(): - with warnings.catch_warnings(record=True) as w: - with open(test_net_bin, 'rb') as f: - bin = f.read() - with open(test_net_xml, 'rb') as f: - xml = f.read() - net = IENetwork(model=xml, weights=bin, init_from_buffer=True) - net2 = IENetwork(model=test_net_xml, weights=test_net_bin) - for name, l in net.layers.items(): - for blob, data in l.blobs.items(): - assert np.allclose(data, net2.layers[name].blobs[blob]), \ - "Incorrect weights for layer {} and blob {}".format(name, blob) - assert len(w) == 11 + ie = IECore() + with open(test_net_bin, 'rb') as f: + bin = f.read() + with open(model_path()[0], 'rb') as f: + xml = f.read() + net = ie.read_network(model=xml, weights=bin, init_from_buffer=True) + ref_net = ie.read_network(model=test_net_xml, weights=test_net_bin) + assert net.name == ref_net.name + assert net.batch_size == ref_net.batch_size + ii_net = net.input_info + ii_net2 = ref_net.input_info + o_net = net.outputs + o_net2 = ref_net.outputs + assert ii_net.keys() == ii_net2.keys() + assert o_net.keys() == o_net2.keys() def test_multi_out_data(): diff --git a/ngraph/python/tests/test_ngraph/test_basic.py b/ngraph/python/tests/test_ngraph/test_basic.py index 4be274fb723..d9c3e12174c 100644 --- a/ngraph/python/tests/test_ngraph/test_basic.py +++ b/ngraph/python/tests/test_ngraph/test_basic.py @@ -32,8 +32,6 @@ from tests import (xfail_issue_34323, xfail_issue_36479, xfail_issue_36480) -from openvino.inference_engine import IENetwork - def test_ngraph_function_api(): shape = [2, 2] @@ -415,14 +413,3 @@ def test_runtime_info(): runtime_info_after = relu_node.get_rt_info() assert runtime_info_after["affinity"] == "test_affinity" - - params = [test_param] - results = [relu_node] - - ng_function = Function(results, params, "testFunc") - - capsule = Function.to_capsule(ng_function) - cnn_network = IENetwork(capsule) - cnn_layer = cnn_network.layers["testReLU"] - assert cnn_layer is not None - assert cnn_layer.affinity == "test_affinity"