Функция nn.conv1d_transpose
Функция nn.conv1d_transpose применяется к входным данным
для выполнения операции, обратной одномерной свертке.
Первым параметром передается входной тензор, вторым - количество
выходных фильтров, третьим - размер ядра свертки. Четвертым
параметром задается форма выходного тензора. Дополнительно можно
указать шаг свертки, отступы и тип данных.
Синтаксис
tf.nn.conv1d_transpose(
input,
filters,
output_shape,
strides,
padding,
[dilations],
[name]
)
Пример
Давайте выполним транспонированную одномерную свертку для тензора с одним каналом и одним фильтром:
import tensorflow as tf
# Input tensor: batch=1, width=5, channels=1
t = tf.constant([[[1.0], [2.0], [3.0], [4.0], [5.0]]])
# Filter: width=3, output_channels=1, input_channels=1
filters = tf.constant([[[1.0]], [[1.0]], [[1.0]]])
res = tf.nn.conv1d_transpose(
t,
filters,
output_shape=[1, 7, 1],
strides=1,
padding='SAME'
)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[1.]
[3.]
[6.]
[9.]
[12.]
[9.]
[5.]]], shape=(1, 7, 1), dtype=float32)
Пример
Давайте выполним транспонированную свертку с шагом 2:
import tensorflow as tf
# Input tensor: batch=1, width=3, channels=1
t = tf.constant([[[1.0], [2.0], [3.0]]])
# Filter: width=2, output_channels=1, input_channels=1
filters = tf.constant([[[1.0]], [[1.0]]])
res = tf.nn.conv1d_transpose(
t,
filters,
output_shape=[1, 6, 1],
strides=2,
padding='SAME'
)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[1.]
[1.]
[2.]
[2.]
[3.]
[3.]]], shape=(1, 6, 1), dtype=float32)
Пример
Давайте выполним транспонированную свертку для двух каналов с двумя выходными фильтрами:
import tensorflow as tf
# Input tensor: batch=1, width=4, channels=2
t = tf.constant([[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0], [7.0, 8.0]]])
# Filter: width=3, output_channels=2, input_channels=2
filters = tf.constant([
[[1.0, 0.0], [0.0, 1.0]],
[[1.0, 1.0], [1.0, 1.0]],
[[0.0, 1.0], [1.0, 0.0]]
])
res = tf.nn.conv1d_transpose(
t,
filters,
output_shape=[1, 6, 2],
strides=1,
padding='SAME'
)
print(res)
Результат выполнения кода:
tf.Tensor(
[[[ 3. 3.]
[ 8. 8.]
[14. 14.]
[20. 20.]
[18. 18.]
[ 7. 7.]]], shape=(1, 6, 2), dtype=float32)
Смотрите также
-
функцию
conv1d,
которая выполняет одномерную свертку -
функцию
conv2d_transpose,
которая выполняет транспонированную двумерную свертку -
функцию
conv2d,
которая выполняет двумерную свертку -
функцию
conv3d,
которая выполняет трехмерную свертку