【发布时间】:2015-11-21 07:19:06
【问题描述】:
我想在 Theano 中刷新我编译的 MLP 模型,因为我想重复一个具有不同超参数的模型。
我知道我可以重新定义所有函数,但是每个函数的编译时间都很重要。
我想定义一个函数来刷新他们的模型
以下代码用于演示。
# construct the MLP class
classifier = MLP(
rng=rng,
input=x,
n_in= n_input,
n_hidden=n_hidden,
n_out= n_output)
cost = (classifier.negative_log_likelihood(y)
+ self.l1 * classifier.L1
+ self.l2 * classifier.L2_sqr)
gparams = [T.grad(cost, param) for param in classifier.params]
updates = [(param, param - self.lr * gparam) \
for param, gparam in zip(classifier.params, gparams)]
train_model = theano.function(
inputs=[index],
outputs=cost,
updates=updates,
givens={x: self.xTrain[index * self.batchSize: (index + 1) * self.batchSize],
y: self.yTrain[index * self.batchSize: (index + 1) * self.batchSize]})
我的直觉表明我可以简单地重新定义 MLP() 类,而不会对其他编译函数产生任何影响。
这对吗?
我在想,如果是这种情况,我可以定义一个 MLP.refresh() 的函数,它为 MLP() 类的每个组件重新实例化参数
【问题讨论】:
标签: python machine-learning neural-network theano