我尝试通过在 Google Colab 中调用自定义模块来构建模型,但收到 autoGraph 警告。
文件夹结构:
drive/My Drive/Colab Notebooks/stackoverflow/q001/
├── train
│ └── train.ipynb # The place where I implement model
│ # import models.get_ResNet13(.)
│
└── tools
└── dl
├── __init__.py
├── layers.py
└── models.py # import layers.ResidualBottleneckBlock
代码:
层.py 代码
模型.py 代码
import tensorflow as tf
from tensorflow.keras.models import Model
from tensorflow.keras.layers import *
from .layers import ResidualBottleneckBlock
def get_ResNet13(input_shape, output_shape):
...
...ResidualBottleneckBlock()...
...
return model
...
train.ipynb 代码:
## Mount Google Drive
import os
from google.colab import drive
drive.mount('/content/drive')
os.chdir("drive/My Drive/Colab Notebooks/stackoverflow/q001/")
## Import
%tensorflow_version 2.x
import tensorflow as tf
import sys
sys.path.append('tools')
from dl import models
## Change Directory
os.chdir('train')
model = models.get_ResNet13(input_shape=(28, 28, 1), output_shape=10)
结果:
在 train.ipynb 的最后一行:
model = models.get_ResNet13(input_shape=(28, 28, 1), output_shape=10)
我收到以下警告:</p>
警告:tensorflow:AutoGraph 无法转换 > 并将按原样运行。请将此报告给 TensorFlow 团队。提交错误时,将详细程度设置为 10(在 Linux 上
export AUTOGRAPH_VERBOSITY=10
)并附上完整的输出。原因:找不到>的源代码。请注意,在某些环境中定义的函数(例如交互式 Python shell)不会公开其源代码。如果是这种情况,您应该在 .py 源文件中定义它们。如果您确定代码与图形兼容,请使用 @tf.autograph.do_not_convert 包装调用。原始错误:无法获取源代码警告:AutoGraph 无法转换 > 并将按原样运行。请将此报告给 TensorFlow 团队。提交错误时,将详细程度设置为 10(在 Linux 上,export AUTOGRAPH_VERBOSITY=10
) 并附加完整的输出。原因:找不到>的源代码。请注意,在某些环境中定义的函数(例如交互式 Python shell)不会公开其源代码。如果是这种情况,您应该在 .py 源文件中定义它们。如果您确定代码与图形兼容,请使用 @tf.autograph.do_not_convert 包装调用。原始错误:无法获取源代码...
我试图添加以下代码,但它不起作用。colab中gast的版本已经是0.2.2了。
!pip install gast==0.2.2
我还发现,如果删除以下代码,则不会出现警告。
os.chdir('train')
模型仍然可以训练。我不知道我是否可以忽略警告。
有谁知道为什么会出现警告?