完全卷积网络的每像素softmax
我试图实现类似完全卷积网络的东西,最后的卷积层使用过滤器大小1x1并输出“分数”张量。 得分张量具有形状[批次,高度,宽度,num_classes]。
我的问题是,tensorflow中的什么函数可以为每个像素应用softmax操作,而与其他像素无关。 tf.nn.softmax操作似乎不是为了这样的目的。
如果没有这样的操作,我想我必须自己写一个。
谢谢!
更新:如果我必须实现自己,我想我可能需要将输入张量重塑为[N,num_claees],其中N = Batch x width x height,然后应用tf.nn.softmax,然后重新整形。 是否有意义?
重塑它到2d,然后重新塑造它,就像你猜测的那样,是正确的方法。
你可以使用这个功能。
我通过从GitHub搜索找到它。
import tensorflow as tf
"""
Multi dimensional softmax,
refer to https://github.com/tensorflow/tensorflow/issues/210
compute softmax along the dimension of target
the native softmax only supports batch_size x dimension
"""
def softmax(target, axis, name=None):
with tf.name_scope(name, 'softmax', values=[target]):
max_axis = tf.reduce_max(target, axis, keep_dims=True)
target_exp = tf.exp(target-max_axis)
normalize = tf.reduce_sum(target_exp, axis, keep_dims=True)
softmax = target_exp / normalize
return softmax
链接地址: http://www.djcxy.com/p/91529.html
上一篇: Per pixel softmax for fully convolutional network
下一篇: How to set custom HTTP headers to requests made by a WKWebView