From 33ea90beacc5e6674ee14ef8ae57fca214c6d20c Mon Sep 17 00:00:00 2001 From: Joseph-Rance <56409230+Joseph-Rance@users.noreply.github.com> Date: Tue, 14 Jan 2020 16:37:01 +0000 Subject: [PATCH 1/5] Add usage example for MaxPool2D Add usage example for MaxPool2D --- tensorflow/python/keras/layers/pooling.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tensorflow/python/keras/layers/pooling.py b/tensorflow/python/keras/layers/pooling.py index b4293289393..63340c197c5 100644 --- a/tensorflow/python/keras/layers/pooling.py +++ b/tensorflow/python/keras/layers/pooling.py @@ -370,6 +370,12 @@ class MaxPooling2D(Pooling2D): [[10.], [11.], [12.]]]], dtype=float32)> + + Usage Example: + + >>> model = tf.keras.models.Sequential() + >>> model.add(tf.keras.layers.Conv2D(32, kernel_size=(3, 3), input_shape=(28,28,1))) + >>> model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2))) For example, for stride=(1,1) and padding="same": From 0efd877c75f5479100913a14641a70e8052a8a8c Mon Sep 17 00:00:00 2001 From: Joseph-Rance <56409230+Joseph-Rance@users.noreply.github.com> Date: Tue, 14 Jan 2020 18:18:40 +0000 Subject: [PATCH 2/5] reduce line length moved half of line 377 onto the next line to shorten line length --- tensorflow/python/keras/layers/pooling.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tensorflow/python/keras/layers/pooling.py b/tensorflow/python/keras/layers/pooling.py index 63340c197c5..2f46eed5083 100644 --- a/tensorflow/python/keras/layers/pooling.py +++ b/tensorflow/python/keras/layers/pooling.py @@ -374,7 +374,8 @@ class MaxPooling2D(Pooling2D): Usage Example: >>> model = tf.keras.models.Sequential() - >>> model.add(tf.keras.layers.Conv2D(32, kernel_size=(3, 3), input_shape=(28,28,1))) + >>> model.add(tf.keras.layers.Conv2D(32, kernel_size=(3, 3), + ... input_shape=(28,28,1))) >>> model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2))) For example, for stride=(1,1) and padding="same": From 42250f72b37462068f4dc9e5da6a482d69173e18 Mon Sep 17 00:00:00 2001 From: Joseph-Rance <56409230+Joseph-Rance@users.noreply.github.com> Date: Fri, 17 Jan 2020 16:49:47 +0000 Subject: [PATCH 3/5] Added output Added an input to train the model on and the output it returns --- tensorflow/python/keras/layers/pooling.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tensorflow/python/keras/layers/pooling.py b/tensorflow/python/keras/layers/pooling.py index 2f46eed5083..6694e95ce65 100644 --- a/tensorflow/python/keras/layers/pooling.py +++ b/tensorflow/python/keras/layers/pooling.py @@ -373,10 +373,15 @@ class MaxPooling2D(Pooling2D): Usage Example: + >>> input_image = np.random.normal(0.5,0.1,(1,28,28,1)) + >>> output = np.random.normal(0.5,0.1,(1,13,13,16)) >>> model = tf.keras.models.Sequential() - >>> model.add(tf.keras.layers.Conv2D(32, kernel_size=(3, 3), + >>> model.add(tf.keras.layers.Conv2D(16, kernel_size=(3, 3), ... input_shape=(28,28,1))) >>> model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2))) + >>> model.compile('adam', 'mean_squared_error') + >>> model.fit(input_image, output) + For example, for stride=(1,1) and padding="same": From f6d1348596be553d7145b2f39bdb8562ad73d85a Mon Sep 17 00:00:00 2001 From: Joseph-Rance <56409230+Joseph-Rance@users.noreply.github.com> Date: Mon, 20 Jan 2020 16:04:18 +0000 Subject: [PATCH 4/5] Add prediction to output --- tensorflow/python/keras/layers/pooling.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/tensorflow/python/keras/layers/pooling.py b/tensorflow/python/keras/layers/pooling.py index 6694e95ce65..4b87dd4c9d9 100644 --- a/tensorflow/python/keras/layers/pooling.py +++ b/tensorflow/python/keras/layers/pooling.py @@ -373,15 +373,24 @@ class MaxPooling2D(Pooling2D): Usage Example: - >>> input_image = np.random.normal(0.5,0.1,(1,28,28,1)) - >>> output = np.random.normal(0.5,0.1,(1,13,13,16)) + >>> input_image = tf.constant([[[[1.], [1.], [2.], [4.], [2.], [4.], [2.]], + ... [[2.], [2.], [3.], [2.], [2.], [1.], [2.]], + ... [[4.], [1.], [1.], [1.], [1.], [2.], [2.]], + ... [[2.], [2.], [1.], [4.], [2.], [3.], [4.]], + ... [[1.], [4.], [1.], [1.], [2.], [3.], [2.]], + ... [[1.], [4.], [2.], [3.], [1.], [2.], [3.]], + ... [[3.], [4.], [1.], [2.], [3.], [1.], [4.]]]]) + >>> output = tf.constant([[[[1], [0]], + ... [[0], [1]]]]) >>> model = tf.keras.models.Sequential() - >>> model.add(tf.keras.layers.Conv2D(16, kernel_size=(3, 3), - ... input_shape=(28,28,1))) + >>> model.add(tf.keras.layers.Conv2D(1, kernel_size=(3, 3), + ... input_shape=(7,7,1))) >>> model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2))) >>> model.compile('adam', 'mean_squared_error') - >>> model.fit(input_image, output) - + >>> model.fit(input_image, output, steps_per_epoch=1, + ... shuffle=False, verbose=0) + >>> model.predict(input_image, steps=1).shape + (1, 2, 2, 1) For example, for stride=(1,1) and padding="same": From 984949ed160202aaeb56c19078007d9c096fe6fa Mon Sep 17 00:00:00 2001 From: Joseph-Rance <56409230+Joseph-Rance@users.noreply.github.com> Date: Tue, 21 Jan 2020 20:22:13 +0000 Subject: [PATCH 5/5] remove conv2d() layers --- tensorflow/python/keras/layers/pooling.py | 25 ++++++++++------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/tensorflow/python/keras/layers/pooling.py b/tensorflow/python/keras/layers/pooling.py index 4b87dd4c9d9..a005bf52089 100644 --- a/tensorflow/python/keras/layers/pooling.py +++ b/tensorflow/python/keras/layers/pooling.py @@ -373,24 +373,21 @@ class MaxPooling2D(Pooling2D): Usage Example: - >>> input_image = tf.constant([[[[1.], [1.], [2.], [4.], [2.], [4.], [2.]], - ... [[2.], [2.], [3.], [2.], [2.], [1.], [2.]], - ... [[4.], [1.], [1.], [1.], [1.], [2.], [2.]], - ... [[2.], [2.], [1.], [4.], [2.], [3.], [4.]], - ... [[1.], [4.], [1.], [1.], [2.], [3.], [2.]], - ... [[1.], [4.], [2.], [3.], [1.], [2.], [3.]], - ... [[3.], [4.], [1.], [2.], [3.], [1.], [4.]]]]) + >>> input_image = tf.constant([[[[1.], [1.], [2.], [4.]], + ... [[2.], [2.], [3.], [2.]], + ... [[4.], [1.], [1.], [1.]], + ... [[2.], [2.], [1.], [4.]]]]) >>> output = tf.constant([[[[1], [0]], ... [[0], [1]]]]) >>> model = tf.keras.models.Sequential() - >>> model.add(tf.keras.layers.Conv2D(1, kernel_size=(3, 3), - ... input_shape=(7,7,1))) - >>> model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2))) + >>> model.add(tf.keras.layers.MaxPooling2D(pool_size=(2, 2), + ... input_shape=(4,4,1))) >>> model.compile('adam', 'mean_squared_error') - >>> model.fit(input_image, output, steps_per_epoch=1, - ... shuffle=False, verbose=0) - >>> model.predict(input_image, steps=1).shape - (1, 2, 2, 1) + >>> model.predict(input_image, steps=1) + array([[[[2.], + [4.]], + [[4.], + [4.]]]], dtype=float32) For example, for stride=(1,1) and padding="same":