conv3d working
This commit is contained in:
+4
-2
@@ -14,12 +14,14 @@ Activation::Activation(Network *net, dataDim_t input_dim, tkdnnActivationMode_t
|
||||
checkCUDNN( cudnnSetTensor4dDescriptor(srcTensorDesc,
|
||||
net->tensorFormat,
|
||||
net->dataType,
|
||||
input_dim.n, input_dim.c,
|
||||
input_dim.n*input_dim.l,
|
||||
input_dim.c,
|
||||
input_dim.h, input_dim.w) );
|
||||
checkCUDNN( cudnnSetTensor4dDescriptor(dstTensorDesc,
|
||||
net->tensorFormat,
|
||||
net->dataType,
|
||||
input_dim.n, input_dim.c,
|
||||
input_dim.n*input_dim.l,
|
||||
input_dim.c,
|
||||
input_dim.h, input_dim.w) );
|
||||
}
|
||||
|
||||
|
||||
@@ -13,12 +13,13 @@ from weights_exporter import *
|
||||
def dense_model():
|
||||
model = Sequential()
|
||||
|
||||
model.add(Reshape((10, 10, 1), input_shape=(10, 10)))
|
||||
model.add(Convolution2D(2, (4, 4), subsample=(2, 2),
|
||||
model.add(Reshape((10, 10, 4, 1), input_shape=(10, 10, 4)))
|
||||
model.add(Convolution3D(2, (4, 4, 2), subsample=(2, 2, 1), activation="relu",
|
||||
bias_initializer='random_uniform'))
|
||||
model.add(Convolution3D(4, (2, 2, 2), subsample=(1, 1, 1),
|
||||
bias_initializer='random_uniform'))
|
||||
model.add(ELU())
|
||||
model.add(Convolution2D(4, (2, 2), subsample=(1, 1),
|
||||
bias_initializer='random_uniform', activation="relu"))
|
||||
|
||||
sgd = keras.optimizers.Adam(lr=1e-4, decay=1e-8)
|
||||
model.compile(optimizer=sgd, loss="mse")
|
||||
return model
|
||||
@@ -29,10 +30,10 @@ if __name__ == '__main__':
|
||||
|
||||
model = dense_model()
|
||||
wg = model.get_weights()
|
||||
export_conv2d("conv0", wg[0], wg[1])
|
||||
export_conv2d("conv1", wg[2], wg[3])
|
||||
export_conv3d("conv0", wg[0], wg[1])
|
||||
export_conv3d("conv1", wg[2], wg[3])
|
||||
|
||||
grid = np.random.rand(10,10)
|
||||
grid = np.random.rand(10,10,4)
|
||||
X = grid[None,:,:]
|
||||
i = np.array(grid.flatten(), dtype=np.float32)
|
||||
print i
|
||||
|
||||
+5
-5
@@ -13,11 +13,11 @@ int main() {
|
||||
|
||||
// Network layout
|
||||
tkDNN::Network net;
|
||||
tkDNN::dataDim_t dim(1, 1, 10, 10);
|
||||
tkDNN::Conv2d c0 (&net, dim, 2, 4, 4, 2, 2, c0_bin, c0_bias_bin);
|
||||
tkDNN::Activation a0 (&net, c0.output_dim, tkDNN::ACTIVATION_ELU);
|
||||
tkDNN::Conv2d c1 (&net, a0.output_dim, 4, 2, 2, 1, 1, c1_bin, c1_bias_bin);
|
||||
tkDNN::Activation a1 (&net, c1.output_dim, tkDNN::ACTIVATION_RELU);
|
||||
tkDNN::dataDim_t dim(1, 1, 10, 10, 4);
|
||||
tkDNN::Conv3d c0 (&net, dim, 2, 4, 4, 2, 2, 2, 1, c0_bin, c0_bias_bin);
|
||||
tkDNN::Activation a0 (&net, c0.output_dim, tkDNN::ACTIVATION_RELU);
|
||||
tkDNN::Conv3d c1 (&net, a0.output_dim, 4, 2, 2, 2, 1, 1, 1, c1_bin, c1_bias_bin);
|
||||
tkDNN::Activation a1 (&net, c1.output_dim, tkDNN::ACTIVATION_ELU);
|
||||
|
||||
// Load input
|
||||
value_type *data;
|
||||
|
||||
Reference in New Issue
Block a user