[Python API] Remove IENetLayer class (#2755)

* [Python API] Remove IENetLayer class

* fix tests

* fix tests

* remove importing ngraph from several tests
This commit is contained in:
Anastasia Kuporosova 2020-10-29 21:34:55 +03:00 committed by GitHub
parent 257bfc9944
commit 266f143cb2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 53 additions and 486 deletions

View File

@ -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

View File

@ -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

View File

@ -5,8 +5,6 @@
#include "ie_api_impl.hpp"
#include "hetero/hetero_plugin_config.hpp"
#include "ie_iinfer_request.hpp"
#include <legacy/details/ie_cnn_network_tools.h>
#include <legacy/cnn_network_impl.hpp>
const std::string EXPORTED_NETWORK_NAME = "undefined";
std::map <std::string, InferenceEngine::Precision> 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<InferenceEngine::details::CNNNetworkImpl>(*actual);
actual = std::make_shared<InferenceEngine::CNNNetwork>(convertedNetwork);
}
}
const std::vector <InferenceEngine::CNNLayerPtr>
InferenceEnginePython::IENetwork::getLayers() {
convertToOldRepresentation();
IE_SUPPRESS_DEPRECATED_START
std::vector<InferenceEngine::CNNLayerPtr> result;
std::vector<InferenceEngine::CNNLayerPtr> 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";

View File

@ -22,7 +22,6 @@
#include <mutex>
#include <ie_extension.h>
#include <legacy/ie_layers.h>
#include <ie_core.hpp>
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 <InferenceEngine::CNNLayerPtr> getLayers();
const std::map<std::string, InferenceEngine::InputInfo::Ptr> getInputsInfo();
const std::map<std::string, InferenceEngine::DataPtr> getInputs();

View File

@ -90,20 +90,6 @@ cdef extern from "<inference_engine.hpp>" 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 "<inference_engine.hpp>" namespace "InferenceEngine":
BLOCKED
cdef extern from "<legacy/ie_layers.h>" 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 +

View File

@ -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'"

View File

@ -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()

View File

@ -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)

View File

@ -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():

View File

@ -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"