예제 #1
0
def test_FNNSR(depth=depth, channel=channel, kernel=kernel):
    net = caffe.NetSpec()

    net.data = L.Input(shape=dict(dim=[1, 1, 2 * depth + 1, 2 * depth + 1]),
                       ntop=1)

    ## pointwise product
    net.layer_out = weight_smooth(net.data, kernel)
    for i in range(channel - 1):
        net.model = weight_smooth(net.data, kernel)
        net.layer_out = L.Eltwise(net.layer_out, net.model)

    net.S = net.layer_out

    for j in range(depth - 1):
        net.layer_in = net.layer_out
        ## pointwise product
        net.layer_out = weight_smooth(net.layer_in, kernel)
        for i in range(channel - 1):
            net.model = weight_smooth(net.layer_in, kernel)
            net.layer_out = L.Eltwise(net.layer_out, net.model)
        net.S = L.Eltwise(net.S, net.layer_out)

    net.P = weighting(net.S)
    # net.loss = L.EuclideanLoss(net.P, net.label)

    return net.to_proto()
예제 #2
0
def train_FNNSR(train_data=train_data_path, test_data=test_data_path,
                batch_size_train=batch_size_train, batch_size_test=batch_size_test,
                depth=depth, channel=channel, kernel=kernel):
    net = caffe.NetSpec()
    net.data, net.label = L.HDF5Data(hdf5_data_param={'source': train_data,
        'batch_size': batch_size_train}, include={'phase': caffe.TRAIN}, ntop=2)
    train_data_layer = str(net.to_proto())
    net.data, net.label = L.HDF5Data(hdf5_data_param={'source': test_data,
        'batch_size': batch_size_test}, include={'phase': caffe.TEST}, ntop=2)

    ## pointwise product
    net.layer_out = weight_smooth(net.data, kernel)
    for i in range(channel-1):
        net.model = weight_smooth(net.data, kernel)
        net.layer_out = L.Eltwise(net.layer_out, net.model)

    net.S = net.layer_out

    for j in range(depth-1):
        net.layer_in = net.layer_out
        ## pointwise product
        net.layer_out = weight_smooth(net.layer_in, kernel)
        for i in range(channel - 1):
            net.model = weight_smooth(net.layer_in, kernel)
            net.layer_out = L.Eltwise(net.layer_out, net.model)
        net.S = L.Eltwise(net.S, net.layer_out)

    net.P = weighting(net.S)
    net.loss = L.EuclideanLoss(net.P, net.label)

    return train_data_layer + str(net.to_proto())