【发布时间】:2017-09-07 21:59:55
【问题描述】:
我正在专门研究蒲公英鬃毛的张量板代码: https://github.com/dandelionmane/tf-dev-summit-tensorboard-tutorial/blob/master/mnist.py
他的卷积层具体定义为:
def conv_layer(input, size_in, size_out, name="conv"):
with tf.name_scope(name):
w = tf.Variable(tf.truncated_normal([5, 5, size_in, size_out], stddev=0.1), name="W")
b = tf.Variable(tf.constant(0.1, shape=[size_out]), name="B")
conv = tf.nn.conv2d(input, w, strides=[1, 1, 1, 1], padding="SAME")
act = tf.nn.relu(conv + b)
tf.summary.histogram("weights", w)
tf.summary.histogram("biases", b)
tf.summary.histogram("activations", act)
return tf.nn.max_pool(act, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding="SAME")
我正在尝试计算 maxpool 对输入张量大小的影响。据我所知,它似乎将中间两个维度大小减半,有时那里有一个+1。也许当尺寸是奇数时。
例如,?x188x141x32 输入变为?x94x71x32
我还看到:?x47x36x128 变成 ?x24x18x128
那么,输入的结果大小是:[a,b,c,d][a,(b+1)//2,(c+1)//2,d] 的输出大小吗?
认为第一维不变是正确的吗?
有没有一种通用的方法可以根据内核和步幅大小来编写输入和输出大小?
【问题讨论】:
标签: python tensorflow deep-learning tensorboard