aboutsummaryrefslogtreecommitdiffhomepage
path: root/tensorflow/contrib/layers
diff options
context:
space:
mode:
authorGravatar A. Unique TensorFlower <gardener@tensorflow.org>2018-06-07 08:54:49 -0700
committerGravatar TensorFlower Gardener <gardener@tensorflow.org>2018-06-07 08:57:39 -0700
commitf66782cacfefedf638dc845d83629057f6d57059 (patch)
treeec0f0307149650a6109dc4c0419ab8b39a4a83c4 /tensorflow/contrib/layers
parent537e8c7a28b6b793eb570c957c4e90bf81ce9c3b (diff)
Add convolution and convolution1d to the public API
PiperOrigin-RevId: 199642103
Diffstat (limited to 'tensorflow/contrib/layers')
-rw-r--r--tensorflow/contrib/layers/__init__.py2
-rw-r--r--tensorflow/contrib/layers/python/layers/layers.py8
-rw-r--r--tensorflow/contrib/layers/python/layers/layers_test.py23
3 files changed, 29 insertions, 4 deletions
diff --git a/tensorflow/contrib/layers/__init__.py b/tensorflow/contrib/layers/__init__.py
index 00f03a111a..bc33596935 100644
--- a/tensorflow/contrib/layers/__init__.py
+++ b/tensorflow/contrib/layers/__init__.py
@@ -19,6 +19,8 @@ See the @{$python/contrib.layers} guide.
@@avg_pool2d
@@avg_pool3d
@@batch_norm
+@@convolution
+@@convolution1d
@@convolution2d
@@convolution3d
@@conv2d_in_plane
diff --git a/tensorflow/contrib/layers/python/layers/layers.py b/tensorflow/contrib/layers/python/layers/layers.py
index b7194ae333..b6d63c9640 100644
--- a/tensorflow/contrib/layers/python/layers/layers.py
+++ b/tensorflow/contrib/layers/python/layers/layers.py
@@ -57,10 +57,10 @@ from tensorflow.python.training import moving_averages
__all__ = [
'avg_pool2d', 'avg_pool3d', 'batch_norm', 'bias_add', 'conv2d', 'conv3d',
'conv2d_in_plane', 'conv2d_transpose', 'conv3d_transpose', 'convolution',
- 'convolution2d', 'convolution2d_in_plane', 'convolution2d_transpose',
- 'convolution3d', 'convolution3d_transpose', 'dense_to_sparse',
- 'dropout', 'elu', 'flatten', 'fully_connected', 'GDN', 'gdn',
- 'images_to_sequence', 'layer_norm', 'linear', 'pool', 'max_pool2d',
+ 'convolution1d', 'convolution2d', 'convolution2d_in_plane',
+ 'convolution2d_transpose', 'convolution3d', 'convolution3d_transpose',
+ 'dense_to_sparse', 'dropout', 'elu', 'flatten', 'fully_connected', 'GDN',
+ 'gdn', 'images_to_sequence', 'layer_norm', 'linear', 'pool', 'max_pool2d',
'max_pool3d', 'one_hot_encoding', 'relu', 'relu6', 'repeat',
'scale_gradient', 'separable_conv2d', 'separable_convolution2d',
'sequence_to_images', 'softmax', 'spatial_softmax', 'stack', 'unit_norm',
diff --git a/tensorflow/contrib/layers/python/layers/layers_test.py b/tensorflow/contrib/layers/python/layers/layers_test.py
index b01fd5d5c9..0e8c89fe3a 100644
--- a/tensorflow/contrib/layers/python/layers/layers_test.py
+++ b/tensorflow/contrib/layers/python/layers/layers_test.py
@@ -1312,6 +1312,29 @@ class ConvolutionInPlaneTest(test.TestCase):
self.assertAllClose(result, expected, rtol=1e-5, atol=1e-5)
+ def testConv1dShape(self):
+ width = 7
+ with self.test_session():
+ images = random_ops.random_uniform((5, width, 3), seed=1)
+ output = layers_lib.convolution1d(images, 32, 3)
+ self.assertEqual(output.op.name, 'Conv/Relu')
+ self.assertListEqual(output.get_shape().as_list(), [5, width, 32])
+
+ def testConvInferSpatialDims(self):
+ depth, height, width = 7, 9, 11
+ with self.test_session():
+ images = np.random.uniform(size=(5, width, 4)).astype(np.float32)
+ output = layers_lib.convolution(images, 32, [3])
+ self.assertListEqual(output.get_shape().as_list(), [5, width, 32])
+ images = np.random.uniform(size=(5, height, width, 4)).astype(np.float32)
+ output = layers_lib.convolution(images, 32, [3, 3])
+ self.assertListEqual(output.get_shape().as_list(), [5, height, width, 32])
+ images = np.random.uniform(size=(5, depth, height, width,
+ 4)).astype(np.float32)
+ output = layers_lib.convolution(images, 32, [3, 3, 3])
+ self.assertListEqual(output.get_shape().as_list(),
+ [5, depth, height, width, 32])
+
class DenseToSparseTest(test.TestCase):