Beispiel #1
0
def inference(x, output_num):
    conv1_out = op.Conv2D((5, 5, 1, 12),
                          input_variable=x,
                          name='conv1',
                          padding='VALID').output_variables
    relu1_out = activation.Relu(input_variable=conv1_out,
                                name='relu1').output_variables
    dropout1_out = op.DropOut(input_variable=relu1_out,
                              name='dropout1',
                              phase='train',
                              prob=0.7).output_variables
    pool1_out = op.MaxPooling(ksize=2,
                              input_variable=dropout1_out,
                              name='pool1').output_variables

    conv2_out = op.Conv2D((3, 3, 12, 24),
                          input_variable=pool1_out,
                          name='conv2').output_variables
    relu2_out = activation.Relu(input_variable=conv2_out,
                                name='relu2').output_variables
    dropout2_out = op.DropOut(input_variable=relu2_out,
                              name='dropout2',
                              phase='train',
                              prob=0.7).output_variables
    pool2_out = op.MaxPooling(ksize=2,
                              input_variable=dropout2_out,
                              name='pool2').output_variables

    fc_out = op.FullyConnect(output_num=output_num,
                             input_variable=pool2_out,
                             name='fc').output_variables
    return fc_out
Beispiel #2
0
def inference(x, output_num):
    conv1_out = op.Conv2D((5, 5, 1, 12),
                          input_variable=x,
                          name='conv1',
                          padding='VALID').output_variables
    relu1_out = op.Relu(input_variable=conv1_out,
                        name='relu1').output_variables
    pool1_out = op.MaxPooling(ksize=2, input_variable=relu1_out,
                              name='pool1').output_variables

    conv2_out = op.Conv2D((3, 3, 12, 24),
                          input_variable=pool1_out,
                          name='conv2').output_variables
    relu2_out = op.Relu(input_variable=conv2_out,
                        name='relu2').output_variables
    pool2_out = op.MaxPooling(ksize=2, input_variable=relu2_out,
                              name='pool2').output_variables

    fc_out = op.FullyConnect(output_num=output_num,
                             input_variable=pool2_out,
                             name='fc').output_variables
    return fc_out
Beispiel #3
0
from layers.softmax import Softmax

import cv2
import numpy as np

img = cv2.imread('layers/test.jpg')
img = img[np.newaxis, :]

a = var.Variable((1, 128, 128, 3), 'a')
label = var.Variable([1, 1], 'label')
import random
label.data = np.array([random.randint(1, 9)])
label.data = label.data.astype(int)

conv1_out = op.Conv2D((3, 3, 3, 3),
                      input_variable=a,
                      name='conv1',
                      padding='VALID').output_variables
relu1_out = op.Relu(input_variable=conv1_out, name='relu1').output_variables
pool1_out = op.MaxPooling(ksize=2, input_variable=relu1_out,
                          name='pool1').output_variables
fc1_out = op.FullyConnect(output_num=10, input_variable=pool1_out,
                          name='fc1').output_variables
sf_out = op.SoftmaxLoss(predict=fc1_out, label=label, name='sf').loss

new_conv1 = op.GLOBAL_VARIABLE_SCOPE['conv1']
new_fc1 = op.GLOBAL_VARIABLE_SCOPE['fc1']

conv1 = Conv2D([1, 128, 128, 3], 3, 3, 1, method='VALID')
relu1 = Relu(conv1.output_shape)
pool1 = MaxPooling(conv1.output_shape)
fc1 = FullyConnect(pool1.output_shape, 10)
import numpy as np

### grad_check

e = 1e-3
a = var.Variable((1, 28, 28, 3), 'a')
b = var.Variable((1, 28, 28, 3), 'b')
c = var.Variable((1, 28, 28, 3), 'c')

b.data = a.data.copy()
c.data = a.data.copy()
a.data += e
b.data -= e

## conv2d
conv1_out = op.Conv2D(a, (3, 3, 3, 3), name='conv1', stride=1,
                      padding=1).output_variables
conv2_out = op.Conv2D(b, (3, 3, 3, 3), name='conv2', stride=1,
                      padding=1).output_variables
conv3_out = op.Conv2D(c, (3, 3, 3, 3), name='conv3', stride=1,
                      padding=1).output_variables

conv1 = var.GLOBAL_VARIABLE_SCOPE['conv1']
conv2 = var.GLOBAL_VARIABLE_SCOPE['conv2']
conv3 = var.GLOBAL_VARIABLE_SCOPE['conv3']
var.GLOBAL_VARIABLE_SCOPE['conv1'].weights.data = var.GLOBAL_VARIABLE_SCOPE[
    'conv2'].weights.data
var.GLOBAL_VARIABLE_SCOPE['conv1'].bias.data = var.GLOBAL_VARIABLE_SCOPE[
    'conv2'].bias.data
var.GLOBAL_VARIABLE_SCOPE['conv3'].weights.data = var.GLOBAL_VARIABLE_SCOPE[
    'conv2'].weights.data
var.GLOBAL_VARIABLE_SCOPE['conv3'].bias.data = var.GLOBAL_VARIABLE_SCOPE[