Kri*_*ses 6 python keras tensorflow
我目前正在使用 tf.keras.applications 中的模型进行训练。还有一个数据增强层。奇怪的是,当我从应用程序导入模型后,增强层不起作用。在导入之前,增强层确实可以工作。到底是怎么回事?
而且,这种情况直到最近新版本 TF 2.8.0 发布后才开始发生。之前一切正常。
增强层的代码是
data_augmentation = tf.keras.Sequential([
tf.keras.layers.RandomFlip("horizontal_and_vertical"),
tf.keras.layers.RandomRotation(0.5),
])
Run Code Online (Sandbox Code Playgroud)
我正在使用导入模型
base_model = tf.keras.applications.MobileNetV3Small(
input_shape=(75, 50, 3), alpha=1.0,
weights='imagenet', pooling='avg', include_top=False,
dropout_rate=0.1, include_preprocessing=False)
Run Code Online (Sandbox Code Playgroud)
请帮助我了解发生了什么事。您可以在此笔记本上重现代码https://colab.research.google.com/drive/13Jd3l2CxbvIWQv3Y7CtryOdrv2IdKNxD?usp=sharing
Ben*_*018 11
我注意到 tf 2.8 也有同样的问题。当您测试增强层时,可以通过添加 Training =True 来解决:
aug = data_augmentation(image,training=True)
Run Code Online (Sandbox Code Playgroud)
原因是增强层在训练和预测(推理)中的行为不同,即它会在训练中进行增强,但在预测中不执行任何操作。理想情况下,该层应根据情况巧妙地设置training=参数。显然,上面的代码并不聪明:它不知道您的意图是测试该层。
但我认为在构建完整模型时,您仍然应该将训练参数保留为默认值,让增强层完成这项工作。
| 归档时间: |
|
| 查看次数: |
1480 次 |
| 最近记录: |