作为该层的tf.dense状态的文档,输出张量与输入的形状相同,只是最后一个尺寸为尺寸单位。我曾尝试在Chainer中使用类似的行为,但未成功。
在Tensorflow中,可以具有(32、28、28、512)张量并将其作为输入馈送到线性层并获得(32、28、28、256)。正如我researched关于tf.dense一样,当输入具有2个以上尺寸时,它会分担权重,并且在执行功能之前不会使输入变平。
chainer.links.Linear确实使输入变平,结果,它不适合内存。我想知道是否有可能在Chainer中具有与tf.dense中相同的功能?
答案 0 :(得分:0)
在应用reshape
之前和之后L.Linear
的输入如何?
import chainer.functions as F
import chainer.links as L
l = L.Linear(512, 256)
# x is (32, 28, 28, 512)
s0, s1, s2, s3 = x.shape
h= F.reshape(x, (s0*s1*s2, s3)
h = l(h)
h = F.reshape(x, (s0, s1, s2, 256))
# Now h should be (32, 28, 28, 256)