【问题标题】:Upgrading tf.contrib.slim manually to tf 2.0手动升级 tf.contrib.slim 到 tf 2.0
【发布时间】:2019-10-30 15:10:54
【问题描述】:

我的 python 代码有问题,它使用 tf.contrib.slim 功能,升级到 tensorflow 到 2.0 后不再工作。

如何将以下内容升级到 tf 2.0:

import tensorflow.contrib.slim as slim
import tensorflow.contrib.slim.nets

# ...

net = slim.conv2d(
    inp, 
    dim,
    [3, 3],
    rate=1,
    normalizer_fn=slim.layer_norm,
    activation_fn=lrelu,
    scope='g_' + str(width) + '_conv1') 

谢谢。

【问题讨论】:

  • 你有没有尝试过?从字面上看,有一个完整的document 专门讨论这个主题,包括一个标题为关于 Slim 和 contrib.layers 的说明的部分。
  • 是的,我对此进行了研究,但发现它并没有太大帮助,因为我是 tensorflow 的新手:/
  • @gobrewers14 我同意 Jonas 的观点,这根本没有帮助。

标签: python tensorflow upgrade slim


【解决方案1】:

您可以改用tf_slim 包(https://github.com/google-research/tf-slim

但是,将包更新到 TF2 的推送请求仍处于等待状态。所以你应该从分支安装 pip install git+https://github.com/adrianc-a/tf-slim.git@remove_contrib

【讨论】:

  • 仍然不完全支持 TF2。例如使用 tensorflow.contrib.training.python.training 导入评估时出错
【解决方案2】:

可能会这样:

net = tf.keras.layers.Conv2D(filters=dim, kernel_size=3, name='g_' + str(width) + '_conv1')(inp)
net = tf.keras.layers.BatchNormalization()(net)
net = tf.keras.layers.LeakyReLU()(net)

使用 slim,可以选择在卷积层之后提及您希望进行的批量标准化和激活。你不能在 2.0 中做到这一点,所以你需要在 2 个不同的层中准确指定你想要的规范化和激活。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-06
    • 2018-01-28
    • 2017-03-18
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    相关资源
    最近更新 更多