本文整理汇总了Python中caffe2.python.core.Net方法的典型用法代码示例。如果您正苦于以下问题:Python core.Net方法的具体用法?Python core.Net怎么用?Python core.Net使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类caffe2.python.core
的用法示例。
在下文中一共展示了core.Net方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: load_model_pb
# 需要导入模块: from caffe2.python import core [as 别名]
# 或者: from caffe2.python.core import Net [as 别名]
def load_model_pb(net_file, init_file=None, is_run_init=True, is_create_net=True):
net = core.Net("net")
if net_file is not None:
net.Proto().ParseFromString(open(net_file, "rb").read())
if init_file is None:
fn, ext = os.path.splitext(net_file)
init_file = fn + "_init" + ext
init_net = caffe2_pb2.NetDef()
init_net.ParseFromString(open(init_file, "rb").read())
if is_run_init:
workspace.RunNetOnce(init_net)
create_blobs_if_not_existed(net.external_inputs)
if net.Proto().name == "":
net.Proto().name = "net"
if is_create_net:
workspace.CreateNet(net)
return (net, init_net)
示例2: _run_speed_test
# 需要导入模块: from caffe2.python import core [as 别名]
# 或者: from caffe2.python.core import Net [as 别名]
def _run_speed_test(self, iters=5, N=1024):
"""This function provides an example of how to benchmark custom
operators using the Caffe2 'prof_dag' network execution type. Please
note that for 'prof_dag' to work, Caffe2 must be compiled with profiling
support using the `-DUSE_PROF=ON` option passed to `cmake` when building
Caffe2.
"""
net = core.Net('test')
net.Proto().type = 'prof_dag'
net.Proto().num_workers = 2
Y = net.BatchPermutation(['X', 'I'], 'Y')
Y_flat = net.FlattenToVec([Y], 'Y_flat')
loss = net.AveragedLoss([Y_flat], 'loss')
net.AddGradientOperators([loss])
workspace.CreateNet(net)
X = np.random.randn(N, 256, 14, 14)
for _i in range(iters):
I = np.random.permutation(N)
workspace.FeedBlob('X', X.astype(np.float32))
workspace.FeedBlob('I', I.astype(np.int32))
workspace.RunNet(net.Proto().name)
np.testing.assert_allclose(
workspace.FetchBlob('Y'), X[I], rtol=1e-5, atol=1e-08
)
示例3: get_net
# 需要导入模块: from caffe2.python import core [as 别名]
# 或者: from caffe2.python.core import Net [as 别名]
def get_net(data_loader, name):
logger = logging.getLogger(__name__)
blob_names = data_loader.get_output_names()
net = core.Net(name)
net.type = 'dag'
for gpu_id in range(cfg.NUM_GPUS):
with core.NameScope('gpu_{}'.format(gpu_id)):
with core.DeviceScope(muji.OnGPU(gpu_id)):
for blob_name in blob_names:
blob = core.ScopedName(blob_name)
workspace.CreateBlob(blob)
net.DequeueBlobs(
data_loader._blobs_queue_name, blob_names)
logger.info("Protobuf:\n" + str(net.Proto()))
return net
示例4: test_constant
# 需要导入模块: from caffe2.python import core [as 别名]
# 或者: from caffe2.python.core import Net [as 别名]
def test_constant():
workspace.ResetWorkspace()
shape = [10, 10]
val = random.random()
net = core.Net("net")
net.ConstantFill([], ["Y"], shape=shape, value=val, run_once=0, name="Y")
# Execute via Caffe2
workspace.RunNetOnce(net)
# Import caffe2 network into ngraph
importer = C2Importer()
importer.parse_net_def(net.Proto(), verbose=False)
# Get handle
f_ng = importer.get_op_handle("Y")
# Execute
with ExecutorFactory() as ex:
f_result = ex.executor(f_ng)()
# compare Caffe2 and ngraph results
assert(np.ma.allequal(f_result, workspace.FetchBlob("Y")))
assert(np.isclose(f_result[0][0], val, atol=1e-6, rtol=0))
示例5: test_SquaredL2Distance
# 需要导入模块: from caffe2.python import core [as 别名]
# 或者: from caffe2.python.core import Net [as 别名]
def test_SquaredL2Distance():
workspace.ResetWorkspace()
shape = (10, 10)
net = core.Net("net")
Y = net.GivenTensorFill([], "Y", shape=shape, values=np.random.uniform(-1, 1, shape))
T = net.GivenTensorFill([], "T", shape=shape, values=np.random.uniform(-1, 1, shape))
net.SquaredL2Distance([Y, T], "dist")
# Execute via Caffe2
workspace.RunNetOnce(net)
# Import caffe2 network into ngraph
importer = C2Importer()
importer.parse_net_def(net.Proto(), verbose=False)
# Get handle
f_ng = importer.get_op_handle("dist")
# Execute
with ExecutorFactory() as ex:
f_result = ex.executor(f_ng)()
assert(np.allclose(f_result, workspace.FetchBlob("dist"), equal_nan=False))
示例6: test_AveragedLoss
# 需要导入模块: from caffe2.python import core [as 别名]
# 或者: from caffe2.python.core import Net [as 别名]
def test_AveragedLoss():
workspace.ResetWorkspace()
shape = (32,)
net = core.Net("net")
X = net.GivenTensorFill([], "Y", shape=shape, values=np.random.uniform(-1, 1, shape))
X.AveragedLoss([], ["loss"])
# Execute via Caffe2
workspace.RunNetOnce(net)
# Import caffe2 network into ngraph
importer = C2Importer()
importer.parse_net_def(net.Proto(), verbose=False)
# Get handle
f_ng = importer.get_op_handle("loss")
# Execute
with ExecutorFactory() as ex:
f_result = ex.executor(f_ng)()
assert(np.allclose(f_result, workspace.FetchBlob("loss"), equal_nan=False))
示例7: _try_get_shapes
# 需要导入模块: from caffe2.python import core [as 别名]
# 或者: from caffe2.python.core import Net [as 别名]
def _try_get_shapes(nets):
'''
Get missing shapes for all blobs contained in the nets.
Args:
nets: List of core.Net to extract blob shape information from.
Returns:
Dictionary containing blob name to shape/dimensions mapping. The net
is a computation graph that is composed of operators, and the
operators have input and output blobs, each with their own dims.
'''
try:
# Note: this will inspect the workspace for better or worse.
# We don't care about the types, only the shapes
shapes, _ = workspace.InferShapesAndTypes(nets)
return shapes
except Exception as e:
logging.warning('Failed to compute shapes: %s', e)
return {}
示例8: model_to_graph_def
# 需要导入模块: from caffe2.python import core [as 别名]
# 或者: from caffe2.python.core import Net [as 别名]
def model_to_graph_def(model, **kwargs):
'''
Convert a Caffe2 model to a Tensorflow graph. This function extracts
'param_init_net' and 'net' from the model and passes it to nets_to_graph()
for further processing.
Args:
model (cnn.CNNModelHelper, model_helper.ModelHelper): The model to
extract the nets (instances of core.Net) from.
Returns:
Call to nets_to_graph_def() with extracted 'param_init_net', 'net' and
**kwargs. See _operators_to_graph_def for detailed **kwargs.
'''
nets = [model.param_init_net, model.net]
return nets_to_graph_def(nets, **kwargs)
示例9: nets_to_graph_def
# 需要导入模块: from caffe2.python import core [as 别名]
# 或者: from caffe2.python.core import Net [as 别名]
def nets_to_graph_def(nets, shapes=None, **kwargs):
'''
Convert a set of Caffe2 nets to a Tensorflow graph.
Args:
nets: List of core.Nets. core.Net is a wrapper around a NetDef protobuf.
The corresponding protobuf can be extracted using .Proto().
shapes: Dictionary mapping blob names to their shapes/dimensions.
Returns:
Call to protos_to_graph_def() with the extracted NetDef protobufs and
**kwargs. See _operators_to_graph_def for detailed **kwargs.
'''
# if shapes is None:
# shapes = _try_get_shapes(nets)
# _try_get_shapes(nets) depends on workspace.InferShapesAndTypes(nets),
# which is currently broken (segfault). We omit the shapes for now.
shapes = {}
nets = [copy.deepcopy(net.Proto()) for net in nets]
shapes = copy.deepcopy(shapes)
return protos_to_graph_def(nets, shapes, **kwargs)
示例10: __init__
# 需要导入模块: from caffe2.python import core [as 别名]
# 或者: from caffe2.python.core import Net [as 别名]
def __init__(self, predict_net, init_net):
logger.info("Initializing ProtobufModel ...")
super().__init__()
assert isinstance(predict_net, caffe2_pb2.NetDef)
assert isinstance(init_net, caffe2_pb2.NetDef)
self.ws_name = "__ws_tmp__"
self.net = core.Net(predict_net)
with ScopedWS(self.ws_name, is_reset=True, is_cleanup=False) as ws:
ws.RunNetOnce(init_net)
for blob in self.net.Proto().external_input:
if blob not in ws.Blobs():
ws.CreateBlob(blob)
ws.CreateNet(self.net)
self._error_msgs = set()