def train_one_layer_conv_net(): nn = Net() nn.add_rank3_input_layer((1, 28, 28)) nn.add_conv_layer( num_out_layers = 20, kernel_height = 3, kernel_width = 3, activation_fn_name = "relu" ) nn.add_max_pool_layer() nn.add_flatten_layer() nn.add_fc_layer(100, "relu") nn.add_fc_layer(10, "relu") nn.add_softmax_layer() run_training(nn, 1.0, 10)
from net import Net import numpy as np from functions import deconvolve2d from simple_trainer import SimpleTrainer # import data im = Image.open("./imgs/convolve_test3.jpeg") data = np.array(im) data = np.transpose(data, (2, 0, 1)) data = data[0:1, :, :] data = data.astype('float32') # create net net = Net() net.add_rank3_input_layer(data.shape) net.add_conv_layer(3, 3, 1) net.layers[1].weights[0, 0] = np.array([[0, 0, -10], [0, 0, 0], [10, 0, 0]]) # net.add_max_pool_layer() net.add_conv_layer(3, 3, 1) net.layers[2].weights[0, 0] = np.array([[0, 0, 0], [0, 1, 0], [0, 0, 0]]) # net.add_max_pool_layer() net.add_rank3output_layer() # get observed output observed = np.copy(net.forward_propagate(data)) # img = Image.fromarray(observed[0,:,:].astype("uint8"), 'L') # img.show() # randomize weights net.layers[1].weights += np.random.uniform(size=[1, 1, 3, 3]).astype( np.float32) #net.layers[1].initialize_weights()