我非常喜欢顺序表示法,因为它使我的代码保持紧凑。我在the documentation中注意到它读取顺序促进权重共享,因此在下面的代码块中共享所有参数:
lay = Sequential ([F, G, H])
y = lay (x)
z = lay (x)
如何以创建两个不同实例但仍允许重用模型描述的方式使用Sequential?所以y和z有自己的权重,但我只在代码中写过一次Sequential? (试图保持我的代码紧凑)
答案 0 :(得分:1)
我从Frank Seide离线获得了两条建议。
方法一是在cntk.ops中使用CloneMethod
lay = Sequential ([F, G, H])
lay2 = lay.clone(CloneMethod.clone) (x)
y = lay (x)
z = lay2 (x)
另一种方法是使用
之外的函数def createLayer():
return Sequential ([F, G, H])
lay = createLayer()
lay2 = createLayer()
y = lay (x)
z = lay2 (x)
如果你想在一行上做所有事情,你也可以做这样的事情
createLayer = lambda : Sequential([Embedding,Recurrence(LSTM(100)),sequence.last))
y = createLayer() (x)
z = createLayer() (x)