jac*_*kuo 7 neural-network deep-learning conv-neural-network tensorflow
我是TensorFlow的新手.我正在尝试在本文https://arxiv.org/abs/1506.04579中实现global_context提取,这实际上是对整个要素图的平均合并,然后将1x1要素图复制回原始大小.图示如下
具体而言,预期的操作如下.输入:[N,1,1,C]张量,其中N是批量大小,C是通道输出的数量:[N,H,W,C]张量,其中H,W是原始的高度和宽度特征映射,输出的所有H*W值与1x1输入相同.
例如,
[[1, 1, 1]
1 -> [1, 1, 1]
[1, 1, 1]]
Run Code Online (Sandbox Code Playgroud)
我不知道如何使用TensorFlow来做到这一点.tf.image.resize_images需要3个通道,而tf.pad不能填充零以外的常量值.
xxi*_*xxi 18
tf.tile可以帮助你
x = tf.constant([[1, 2, 3]]) # shape (1, 3)
y = tf.tile(x, [3, 1]) # shape (3, 3)
y_ = tf.tile(x, [3, 2]) # shape (3, 6)
with tf.Session() as sess:
a, b, c = sess.run([x, y, y_])
>>>a
array([[1, 2, 3]], dtype=int32)
>>>b
array([[1, 2, 3],
[1, 2, 3],
[1, 2, 3]], dtype=int32)
>>>c
array([[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3],
[1, 2, 3, 1, 2, 3]], dtype=int32)
Run Code Online (Sandbox Code Playgroud)
tf.tile(input, multiples, name=None)
multiples意味着你要多少次在该轴重复
在y重复axis0 3次
在y_重复axis0 3次,AXIS1 2倍
您可能需要使用tf.expand_dim第一
是的它接受动态形状
x = tf.placeholder(dtype=tf.float32, shape=[None, 4])
x_shape = tf.shape(x)
y = tf.tile(x, [3 * x_shape[0], 1])
with tf.Session() as sess:
x_ = np.array([[1, 2, 3, 4]])
a = sess.run(y, feed_dict={x:x_})
>>>a
array([[ 1., 2., 3., 4.],
[ 1., 2., 3., 4.],
[ 1., 2., 3., 4.]], dtype=float32)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11360 次 |
| 最近记录: |