def load_dict2cnn(self,cnn_dict): n_layers = self.conv_layer_num for i in xrange(n_layers): conv_layer = self.conv_layers[i] filter_shape = conv_layer.filter_shape W_array = conv_layer.W.get_value() for next_X in xrange(filter_shape[0]): for this_X in xrange(filter_shape[1]): dict_a = 'W ' + str(i) + ' ' + str(next_X) + ' ' + str(this_X) W_array[next_X, this_X, :, :] = numpy.asarray(_string2array(cnn_dict[dict_a])) conv_layer.W.set_value(W_array) dict_a = 'b ' + str(i) conv_layer.b.set_value(numpy.asarray(_string2array(cnn_dict[dict_a]), dtype=theano.config.floatX))
def load_dict2cnn(self,cnn_dict): n_layers = self.conv_layer_num for i in xrange(n_layers): conv_layer = self.conv_layers[i] filter_shape = conv_layer.filter_shape W_array = conv_layer.W.get_value() for X_0 in xrange(filter_shape[0]): for X_1 in xrange(filter_shape[1]): for X_2 in xrange(filter_shape[2]): dict_a = 'W ' + str(i) + ' ' + str(X_0) + ' ' + str(X_1) + ' ' + str(X_2) W_array[X_0,X_1,X_2, :, :] = numpy.asarray(_string2array(cnn_dict[dict_a])) conv_layer.W.set_value(W_array) dict_a = 'b ' + str(i) conv_layer.b.set_value(numpy.asarray(_string2array(cnn_dict[dict_a]), dtype=theano.config.floatX))
def load_dict2mlp(self,mlp_dict,max_layer_num=-1,withfinal=True): if max_layer_num == -1: max_layer_num = self.hidden_layer_num for i in xrange(max_layer_num): dict_key = str(i) + ' W' self.mlp_layers[i].params[0].set_value(numpy.asarray(_string2array(mlp_dict[dict_key]), dtype=theano.config.floatX)) dict_key = str(i) + ' b' self.mlp_layers[i].params[1].set_value(numpy.asarray(_string2array(mlp_dict[dict_key]), dtype=theano.config.floatX)) if withfinal: dict_key = 'logreg W' self.logLayer.params[0].set_value(numpy.asarray(_string2array(mlp_dict[dict_key]), dtype=theano.config.floatX)) dict_key = 'logreg b' self.logLayer.params[1].set_value(numpy.asarray(_string2array(mlp_dict[dict_key]), dtype=theano.config.floatX))
def load_dict2cnn(self, cnn_dict): n_layers = self.conv_layer_num for i in xrange(n_layers): conv_layer = self.conv_layers[i] filter_shape = conv_layer.filter_shape W_array = conv_layer.W.get_value() for X_0 in xrange(filter_shape[0]): for X_1 in xrange(filter_shape[1]): for X_2 in xrange(filter_shape[2]): dict_a = 'W ' + str(i) + ' ' + str(X_0) + ' ' + str( X_1) + ' ' + str(X_2) W_array[X_0, X_1, X_2, :, :] = numpy.asarray( _string2array(cnn_dict[dict_a])) conv_layer.W.set_value(W_array) dict_a = 'b ' + str(i) conv_layer.b.set_value( numpy.asarray(_string2array(cnn_dict[dict_a]), dtype=theano.config.floatX))
def load(self,filename,start_layer = 0,max_layer_num = -1,withfinal=True): nnet_dict = {} if max_layer_num == -1: max_layer_num = self.n_layers with open(filename, 'rb') as fp: nnet_dict = json.load(fp) for i in xrange(max_layer_num): dict_key = str(i) + ' W' self.layers[i].params[0].set_value(numpy.asarray(_string2array(nnet_dict[dict_key]), dtype=theano.config.floatX)) dict_key = str(i) + ' b' self.layers[i].params[1].set_value(numpy.asarray(_string2array(nnet_dict[dict_key]), dtype=theano.config.floatX)) if withfinal: dict_key = 'logreg W' self.logLayer.params[0].set_value(numpy.asarray(_string2array(nnet_dict[dict_key]), dtype=theano.config.floatX)) dict_key = 'logreg b' self.logLayer.params[1].set_value(numpy.asarray(_string2array(nnet_dict[dict_key]), dtype=theano.config.floatX))