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()
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())