假设我有3D nn.conv()
或nn.conv3d()
输出是以下形状的张量:
[1(batch),28(depth), 28(rows), 28(cols), 32(channels)]
<tf.Tensor 'Relu_1:0' shape=(1, 28,28, 28, 32) dtype=float32>
我想在每个28x28x28体积数据上应用一个函数。我真的不明白里面的数据是什么样的。为什么不应该(频道,28,28,28)?我认为它是一个np.array。
我看到它可以通过以下方式完成:
function_to_map = f(x)
res = tf.map_fn(f, input)
但我不知道如何在这个张量上定义函数f
。我真的很困惑这里的频道,里面的数据是什么样的。
答案 0 :(得分:0)
conv1 = tf.pack([tf.py_func(func,[tf.unpack(conv1)[i]],[tf.float32])[0] for i in range(n)])
func的输入是numpy.array,函数的输出也是numpy数组。 func可以是任何python函数。如果张量为(n,b,c,d),则数据为(b,c,d)n是批量大小。终于明白了。