【问题标题】:convert resnet implementation from caffe to tensorflow将 resnet 实现从 caffe 转换为 tensorflow
【发布时间】:2018-04-25 07:14:13
【问题描述】:

我想从头实现 resnet 50 它是由原始论文的作者在 caffe 中实现的,但我想要 tensorflow 实现 由于这个存储库:https://github.com/KaimingHe/deep-residual-networks 因此这张图片:http://ethereon.github.io/netscope/#/gist/db945b393d40bfa26006 我知道每个等价物(在 tensorflow 中),但我不知道 scale 的含义,在批量标准化之后,你能解释一下含义以及 batchnorm 中的“使用 globale state”参数吗?

【问题讨论】:

    标签: tensorflow neural-network computer-vision deep-learning caffe


    【解决方案1】:
    1. caffe 中的“就地”层只是提示 caffe 节省内存:“就地”层不会为网络的输入和输出分配内存,而是使用层的输出覆盖输入。
    2. "BatchNorm" 层中使用全局状态意味着使用训练期间计算的均值/标准差,并且不会进一步更新这些值。这是 BN 层的“部署”状态。

    【讨论】:

    • 感谢回复,但是在github中实现resnet时,他们说,batchnorm参数应该更新,特别是caffe模型转换为tensorflow的实现,那我该怎么办?这是转换后的实现:(github.com/chenxi116/TF-resnet)
    • @sh.kh 你应该区分“deploy”/“val” net - 当训练后权重固定时,以及“train” net - 权重(和批处理规范参数)在哪里不断更新。我想您转换后的网络应该能够在这两种模式下运行。
    • @sh.kh 是的,你在训练期间更新了批规范参数
    • 所以在训练模式下,batchnorm 参数(均值和方差)应该更新,而在评估模式下它们不应该更新。正确吗?所以 KamingHe git repo 中的图片是训练模式,因为他使用“use_global_state=true”
    • @sh.kh 我怀疑相反,use_global_state=true 意味着在“部署”阶段使用固定权重
    猜你喜欢
    • 1970-01-01
    • 2017-02-24
    • 2019-06-04
    • 1970-01-01
    • 2019-05-21
    • 2018-02-15
    • 1970-01-01
    • 2017-11-23
    • 2017-04-04
    相关资源
    最近更新 更多