예제 #1
0
파일: main.py 프로젝트: ailadson/nn
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)
예제 #2
0
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()