我有以下代码,当我创建图层时使用Keras和Theano:
net.add(Dense(outdim))
Wlast = net.layers[-1].W
Wlast.set_value(Wlast.get_value(borrow=True) * 0.1)
对于TF是否有适当的变换?我试试这个:
net.add(Dense(outdim))
Wlast = net.layers[-1].W
K.set_value(Wlast, K.get_value(Wlast) * 0.1)
# before it I do some import and set session:
# from Keras import backend as K
# K.set_session(session)
但我不确定这样做是否合适。
因为我使用这一层作为概率输出:在Theano版本中,概率向量在[-1,-1]范围内-从另一方面,如果我使用这个Keras代码的概率偏差大于1(如果我手动减少这些输出权重0.1 -概率分布变得接近Theano)
正确的解决方案是使用Keras的lambdas,例如:
net.add(Dense(outdim))
net.add(Lambda(lambda x: x * 0.1))