将Alexnet从Tensorflow 1.x转换为Tensorflow 2.0

2024-05-21 08:56:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试对Alexnet进行测试线束方面的培训,并将线束传递给模型定义(用TF1.X编写)。测试线束的所有部分都正常工作,但当我通过模型培训时,我遇到了

module 'tensorflow' has no attribute 'contrib'

因为我的模型定义很旧,而且测试线束运行的是最新和最大的TF2.0(tensorflow 2.0.0a0)

我发现解决这个问题的帖子如下:

Tensorflow 2.0 - AttributeError: module 'tensorflow' has no attribute 'Session'

Module 'tensorflow' has no attribute 'contrib'

但它们都没有真正解决这个问题

我所尝试的:

  • 上面的一条建议建议我将TF1.X代码升级到TF2.0,方法是将文件或文件夹传递到tf_upgrade_v2,如here所述,但从发行说明(并实际运行它)中,我发现.contrib是唯一一个不支持转换的库

  • 另一个建议(here)是,我可以通过使用os模块修改环境变量来获得相同的结果,但是我使用的测试工具不允许我访问环境变量,因此这种方法不起作用

  • 从TF网站上我找到了this,它描述了一种将tf.contrib.slim转换为TF2.0的方法(似乎很有希望),但给出了他们提出的tf.contrib.slim>v1.layers>keras这将涉及到我这方面的大量工作,所以我想在进入这个兔子洞之前用尽所有其他可用的选项

在TF2.0中重写Alexnet的选项有哪些


Tags: 方法no模型here定义tftensorflowattribute