def setUp(self): def myhelper(model, val=-1): return val if not brew.has_helper(myhelper): brew.Register(myhelper) self.myhelper = myhelper def myhelper2(model, val=-1): return val if not brew.has_helper(myhelper2): brew.Register(myhelper2) self.myhelper2 = myhelper2
def __init__( self, name: str, cnn_parameters: CNNParameters, ) -> None: """ :param name: A unique name for this trainer used to create the data on the caffe2 workspace :param parameters: The set of training parameters """ if not CNN.registered: brew.Register(conv_explicit_param_names) # type: ignore CNN.registered = True self.model_id = name self.init_height = cnn_parameters.input_height self.init_width = cnn_parameters.input_width self.dims = cnn_parameters.conv_dims self.conv_height_kernels = cnn_parameters.conv_height_kernels self.conv_width_kernels = cnn_parameters.conv_width_kernels self.pool_kernels_strides = cnn_parameters.pool_kernels_strides self.pool_types = cnn_parameters.pool_types self._validate_inputs() self._setup_initial_blobs()
def fc_explicit_param_names(self): brew.Register(fc_explicit_param_names) model = model_helper.ModelHelper(name="test_model") dim_in = 10 dim_out = 100 weight_name = "test_weight_name" bias_name = "test_bias_name" inputs_name = "test_inputs" output_name = "test_output" input_distribution = stats.norm() inputs = input_distribution.rvs(size=(1, dim_in)).astype(np.float32) workspace.FeedBlob(inputs_name, inputs) weights = np.random.normal(size=(dim_out, dim_in)).astype(np.float32) bias = np.transpose( np.random.normal(size=(dim_out)).astype(np.float32)) brew.fc_explicit_param_names( model, inputs_name, output_name, dim_in=dim_in, dim_out=dim_out, bias_name=bias_name, weight_name=weight_name, weight_init=("GivenTensorFill", { "values": weights }), bias_init=("GivenTensorFill", { "values": bias }), ) workspace.RunNetOnce(model.param_init_net) model.net.Proto().type = "async_scheduling" workspace.CreateNet(model.net) workspace.RunNet(model.net) expected_output = np.dot(inputs, np.transpose(weights)) + bias outputs_diff = expected_output - workspace.FetchBlob(output_name) self.assertEqual(np.linalg.norm(outputs_diff), 0)
def __init__(self, name: str, parameters: TrainingParameters) -> None: """ :param name: A unique name for this trainer used to create the data on the caffe2 workspace :param parameters: The set of training parameters """ if not DNN.registered: brew.Register(fc_explicit_param_names) # type: ignore DNN.registered = True self.model_id = name self.layers = parameters.layers self.activations = parameters.activations self.dropout_ratio = parameters.dropout_ratio self.skip_random_weight_init = parameters.warm_start_model_path is not None self._validate_inputs() self._setup_initial_blobs()