python - 替换 tf keras 中现有模型的一层
问题描述
我加载了一个预训练模型。但是,我想在这个模型中添加光谱归一化。
如果模型是完全顺序的,我可以这样做:
import tensorflow as tf
base_model = tf.keras.applications.VGG16(input_shape=(720, 1280, 3), weights=None, include_top=False)
# Add spectral normalization
base_model_new = tf.keras.models.Sequential()
for layer in base_model.layers:
if isinstance(layer, tf.keras.layers.Conv2D):
spec_norm_layer = SpectralNormalization(layer)
base_model_new.add(spec_norm_layer)
else:
base_model_new.add(layer)
input = tf.keras.Input(shape=(720, 1280, 3), name='image')
x = base_model_new(input)
model = tf.keras.models.Model(inputs=[input], outputs=x, name='test')
但是,当使用 ResNet 时,此方法不起作用,其中存在需要输入列表的 Add 或 Concatenate 层。如何为 ResNets 解决这个问题?
解决方案
推荐阅读
- powershell - PowerShell 命令不通过 cmd 脚本运行
- python - 如何从日期时间中删除年份以在彼此之上绘制年份
- business-intelligence - QlikSense 脚本问题:我收到了一些不同状态的案例编号的多条记录,例如“进度”和“暂停”
- database - 使用过滤器中的值更新文档
- reactjs - 如何使用 typescript 扩展 react-bootstrap 组件?
- html - 在段落中使用列表后删除换行符
- javascript - 对象中的 JavaScript 位置属性访问
- excel-formula - 最小 3 个值的平均值导致 Err539
- google-bigquery - 在 google bigquery 中添加带条件的值
- r - Matlab函数转换为R