我正在尝试将Keras
模型与Lasagne
图层结合起来。我在Lasagne
图层中调用此函数:
def get_output_for(self, inputs, deterministic=False):
self.p = self.nonlinearity(T.dot(inputs[1], self.pi))
self.mask = sample_mask(self.p)
if deterministic or T.mean(self.p) == 0:
return self.p*inputs[0]
else:
return inputs[0]*self.mask
问题是,我的inputs
对象是上一个Keras
图层的输出,Tesnor
对象是Keras
对象,Tensor
图层产生inputs
个输出。这不起作用。我不确定Tensor
应该具有什么类型或如何在$(".homebranch").each(function() {
$(this).html($(".location", this));
});
和此函数所期望的类型之间进行转换。
答案 0 :(得分:0)
我认为混合Lasagne和Keras / Tensorflow对象并不是最佳选择。相反,您可以将get_output_for方法转换为Tensorflow。 在下文中,我认为非线性类似于
self.nonlinearity = lambda x: tf.maximum(x, 0)
并且输入是一个类似numpy.array的对象:
def tf_get_output_for(self, inputs, deterministic=False):
self.p = self.nonlinearity(tf.matmul(inputs[1], self.pi))
self.mask = sample_mask(self.p)
if deterministic or tf.reduce_mean(self.p) == 0:
return self.p * inputs[0]
else:
return inputs[0] * self.mask
方法sample_mask必须转换为“Tensorflow compatible”