Python caffe2.python.core.Net() Examples
The following are 30
code examples of caffe2.python.core.Net().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
caffe2.python.core
, or try the search function
.
Example #1
Source File: test_batch_permutation_op.py From Detectron-Cascade-RCNN with Apache License 2.0 | 6 votes |
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 )
Example #2
Source File: test_ops_constant.py From ngraph-python with Apache License 2.0 | 6 votes |
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))
Example #3
Source File: test_batch_permutation_op.py From CBNet with Apache License 2.0 | 6 votes |
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 )
Example #4
Source File: test_batch_permutation_op.py From NucleiDetectron with Apache License 2.0 | 6 votes |
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 )
Example #5
Source File: test_loader.py From NucleiDetectron with Apache License 2.0 | 6 votes |
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
Example #6
Source File: test_loader.py From KL-Loss with Apache License 2.0 | 6 votes |
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
Example #7
Source File: test_batch_permutation_op.py From KL-Loss with Apache License 2.0 | 6 votes |
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 )
Example #8
Source File: writer.py From c2board with MIT License | 6 votes |
def write_graph(self, model_or_nets_or_protos=None, **kwargs): '''Write graph to the summary.''' if isinstance(model_or_nets_or_protos, cnn.CNNModelHelper): current_graph, track_blob_names = model_to_graph(model_or_nets_or_protos, **kwargs) elif isinstance(model_or_nets_or_protos, list): if isinstance(model_or_nets_or_protos[0], core.Net): current_graph, track_blob_names = nets_to_graph(model_or_nets_or_protos, **kwargs) elif isinstance(model_or_nets_or_protos[0], caffe2_pb2.NetDef): current_graph, track_blob_names = protos_to_graph(model_or_nets_or_protos, **kwargs) else: raise NotImplementedError else: raise NotImplementedError self._file_writer.add_graph(current_graph) self._track_blob_names = track_blob_names # Once the graph is built, one can just map the blobs self.check_names() self.sort_out_names()
Example #9
Source File: model_utils.py From models with Apache License 2.0 | 6 votes |
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)
Example #10
Source File: test_batch_permutation_op.py From DetectAndTrack with Apache License 2.0 | 6 votes |
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 )
Example #11
Source File: test_loader.py From CBNet with Apache License 2.0 | 6 votes |
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
Example #12
Source File: test_loader.py From Detectron with Apache License 2.0 | 6 votes |
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
Example #13
Source File: test_ops_nn.py From ngraph-python with Apache License 2.0 | 6 votes |
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))
Example #14
Source File: test_batch_permutation_op.py From Detectron with Apache License 2.0 | 6 votes |
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 )
Example #15
Source File: test_loader.py From Detectron-Cascade-RCNN with Apache License 2.0 | 6 votes |
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
Example #16
Source File: test_ops_nn.py From ngraph-python with Apache License 2.0 | 6 votes |
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))
Example #17
Source File: caffe2_graph.py From tensorboardX with MIT License | 6 votes |
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 {}
Example #18
Source File: caffe2_graph.py From tensorboardX with MIT License | 6 votes |
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)
Example #19
Source File: caffe2_graph.py From tensorboardX with MIT License | 6 votes |
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)
Example #20
Source File: test_loader.py From masktextspotter.caffe2 with Apache License 2.0 | 6 votes |
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
Example #21
Source File: caffe2_graph.py From tensorboardX with MIT License | 6 votes |
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 {}
Example #22
Source File: caffe2_graph.py From tensorboardX with MIT License | 6 votes |
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)
Example #23
Source File: test_batch_permutation_op.py From masktextspotter.caffe2 with Apache License 2.0 | 6 votes |
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 )
Example #24
Source File: model_utils.py From inference with Apache License 2.0 | 6 votes |
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)
Example #25
Source File: caffe2_inference.py From detectron2 with Apache License 2.0 | 6 votes |
def __init__(self, predict_net, init_net, *, convert_outputs=None): """ Args: predict_net, init_net (core.Net): caffe2 nets convert_outptus (callable): a function that converts caffe2 outputs to the same format of the original pytorch model. By default, use the one defined in the caffe2 meta_arch. """ super().__init__() self.protobuf_model = ProtobufModel(predict_net, init_net) self.size_divisibility = get_pb_arg_vali(predict_net, "size_divisibility", 0) self.device = get_pb_arg_vals(predict_net, "device", b"cpu").decode("ascii") if convert_outputs is None: meta_arch = get_pb_arg_vals(predict_net, "meta_architecture", b"GeneralizedRCNN") meta_arch = META_ARCH_CAFFE2_EXPORT_TYPE_MAP[meta_arch.decode("ascii")] self._convert_outputs = meta_arch.get_outputs_converter(predict_net, init_net) else: self._convert_outputs = convert_outputs
Example #26
Source File: test_batch_permutation_op.py From Clustered-Object-Detection-in-Aerial-Image with Apache License 2.0 | 6 votes |
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 )
Example #27
Source File: test_loader.py From Clustered-Object-Detection-in-Aerial-Image with Apache License 2.0 | 6 votes |
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
Example #28
Source File: caffe2_inference.py From detectron2 with Apache License 2.0 | 6 votes |
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()
Example #29
Source File: test_batch_permutation_op.py From seg_every_thing with Apache License 2.0 | 6 votes |
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 )
Example #30
Source File: test_loader.py From seg_every_thing with Apache License 2.0 | 6 votes |
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