python - 是否可以使用 tf.keras.models.clone_model 来改变数据输入的形状?
问题描述
我想使用函数 API 创建的 tensorflow/keras 模型的方法clone_model
并tf.keras
更改其输入形状。因此,我尝试使用参数input_tensor
来改变形状。但是,它似乎没有使用提供input_tensors
的名称和形状与原始模型保持相同。论证的input_tensors
目的是什么?
编码:
import tensorflow as tf
from tensorflow.keras import layers
inputs_small = layers.Input((64, 64, 3), name="small")
outputs = layers.Conv2D(32, 1)(inputs_small)
model_small = tf.keras.models.Model(inputs=inputs_small, outputs=outputs)
inputs_large = layers.Input((128, 128, 3), name="large")
model_large = tf.keras.models.clone_model(model_small, input_tensors=inputs_large)
model_large.summary()
结果是:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
small (InputLayer) [(None, 64, 64, 3)] 0
_________________________________________________________________
conv2d (Conv2D) (None, 64, 64, 32) 128
=================================================================
但我喜欢:
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
large (InputLayer) [(None, 128, 128, 3)] 0
_________________________________________________________________
conv2d (Conv2D) (None, 128, 128, 32) 128
=================================================================
我使用 TensorFlow 2.4.1。我简化了我的问题。在我的代码中,我还使用了clone_function
替换clone_model
图层的参数。
解决方案
我进一步调查并发现了一个 Keras 错误: https ://github.com/keras-team/keras/issues/14937
推荐阅读
- c# - 错误:无法在 SSIS 中加载文件或程序集“Microsoft.WindowsAzure.Configuration”
- html - 如何在 flex 框中为 paragrpah 设置全高和动态宽度?
- linux - 使用链接更改文件夹结构并使文件可用
- angular - flatMap 问题从 Angular 4 转换为 Angular 9
- svg - 如何修复 MS Edge 中的 SVG 标记方向?
- java - Firebase 算子吗?
- magento2 - 如何从 magento 2.3 的 shipping_tablerate 表运费模块中获取收藏
- c# - 如何更新 Azure 用户密码?获取错误权限不足以完成操作
- python-3.x - Filedialog 打印文件路径不正确
- java - FragmentStateAdapter 删除最后一个选项卡而不是当前 ViewPager2