让x
成为(n, w, h, c)
大小的过滤器张量。
我想将tf.nn.softmax()
函数应用于该张量中的每个过滤器。我该怎么办?
我尝试了以下操作,但出现了错误:
import tensorflow as tf
import numpy as np
n, c = 2, 2
h, w = 2, 2
x = tf.ones([n, h, w, c])
y = tf.nn.softmax(x, axis=[1,2])
with tf.Session() as sess:
sess.run(tf.global_variables_initializer())
print(x)
print("x", sess.run(x))
print("\n")
print(y)
print("y", sess.run(y))
手术后,我希望每个过滤器都是
0.25 0.25
0.25 0.25
答案 0 :(得分:1)
这是我的解决方案:
重塑x
如下:
x_r = tf.reshape(x, [n, -1, c])
将softmax应用于过滤器尺寸:
y_r = tf.nn.softmax(x_r, axis=1)
恢复原始形状:
y = tf.reshape(y_r, [n, h, w, c])