首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展,甚至用Chainer空的观察

扩展,甚至用Chainer空的观察
EN

Stack Overflow用户
提问于 2018-06-26 12:40:03
回答 1查看 91关注 0票数 2

我对Chainer有点陌生,最近我一直在为一个奇怪的情况而挣扎。我有一个链来计算CNN,我用一个labeledDataSet来填充它。但是当我使用这些扩展时,不会出现任何结果。当我显示观察值时,它是空的。但是损失确实是计算出来的,并且更新了参数(至少它们改变了),所以我不知道连接问题在哪里。

代码语言:javascript
复制
def convert(batch, device):
    return chainer.dataset.convert.concat_examples(batch, device, padding=0)
def print_obs(t):
    print("trainer.observation", trainer.observation)
    print("updater.loss", updater.loss_func)
    print("conv1", model.predictor.conv1.W[0][0])
    print("conv20", model.predictor.conv20.W[0][0])

model.predictor.train = True
model.predictor.finetune = False  ####or True ??
cuda.get_device(0).use()
model.to_gpu()
optimizer = optimizers.MomentumSGD(lr=learning_rate, momentum=momentum)
optimizer.use_cleargrads()
optimizer.setup(model)
optimizer.add_hook(chainer.optimizer.WeightDecay(weight_decay))

train, test = imageNet_data.train_val_test()
train_iter = iterators.SerialIterator(train, batch_size)
test_iter = iterators.SerialIterator(test, batch_size, repeat=False,shuffle=False)
with chainer.using_config('debug', True):
# Set up a trainer
    updater = training.StandardUpdater(train_iter, optimizer, loss_func=model, converter=convert)
    trainer = training.Trainer(updater, (10, 'epoch'), out="./backup/result")
    trainer.extend(print_obs, trigger=(3, 'iteration'))
    trainer.extend(extensions.LogReport())
    trainer.extend(extensions.PrintReport(
  ['epoch', 'main/loss', 'validation/main/loss',
   'main/accuracy', 'validation/main/accuracy', 'elapsed_time']))
trainer.run()

也许这是完全错过的东西,这是很明显的。谢谢你的发言,这对我有很大的帮助。

Chainer4.1,Ubuntu16

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-29 04:21:45

如果您正在与培训师一起使用您自己的链接,则需要使用您自己的chainer.report报告度量标准。有关说明,请参见https://docs.chainer.org/en/stable/guides/report.html

您可以在Chainer存储库中看到一些示例:

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51043172

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档