Tensorflow仅将softmax功能应用于过滤器

时间:2018-11-09 07:22:40

标签: python tensorflow

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

1 个答案:

答案 0 :(得分:1)

这是我的解决方案:

  1. 重塑x如下:

    x_r = tf.reshape(x, [n, -1, c])
    
  2. 将softmax应用于过滤器尺寸:

    y_r = tf.nn.softmax(x_r, axis=1)
    
  3. 恢复原始形状:

    y = tf.reshape(y_r, [n, h, w, c])