diff --git a/src/Activation.cpp b/src/Activation.cpp index cf09b3d..2ee971e 100644 --- a/src/Activation.cpp +++ b/src/Activation.cpp @@ -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) ); } diff --git a/tests/simple_dense.py b/tests/simple_dense.py index 14af613..0e652cf 100644 --- a/tests/simple_dense.py +++ b/tests/simple_dense.py @@ -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 diff --git a/tests/test.cpp b/tests/test.cpp index 3c24101..1ba5027 100644 --- a/tests/test.cpp +++ b/tests/test.cpp @@ -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;