相当于链接器中的tf.dense

时间:2018-12-19 22:15:08

标签: chainer

作为该层的tf.dense状态的文档,输出张量与输入的形状相同,只是最后一个尺寸为尺寸单位。我曾尝试在Chainer中使用类似的行为,但未成功。

在Tensorflow中,可以具有(32、28、28、512)张量并将其作为输入馈送到线性层并获得(32、28、28、256)。正如我researched关于tf.dense一样,当输入具有2个以上尺寸时,它会分担权重,并且在执行功能之前不会使输入变平。

chainer.links.Linear确实使输入变平,结果,它不适合内存。我想知道是否有可能在Chainer中具有与tf.dense中相同的功能?

1 个答案:

答案 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)