gpt4 book ai didi

python - 将输入 channel 数更改为预训练的 keras.applications 模型?

转载 作者:行者123 更新时间:2023-12-04 00:03:09 25 4
gpt4 key购买 nike

我正在设计一个深度学习分割模型的原型(prototype),该模型需要六个输入 channel (两个在不同光照条件下对齐的 448x448 RGB 图像)。我希望将几个预训练模型的性能与我从头开始训练的当前模型的性能进行比较。我可以使用 tf.keras.applications 中的预训练模型吗?对于超过 3 个 channel 的输入图像?

我尝试先应用卷积将 channel 维度减小到 3,然后将该输出传递给 tf.keras.applications.DenseNet121()但收到以下错误:

import tensorflow as tf
dense_input = tf.keras.layers.Input(shape=(448, 448, 6))
dense_filter = tf.keras.layers.Conv2D(3, 3, padding='same')(dense_input)
dense_stem = tf.keras.applications.DenseNet121(include_top=False, weights='imagenet', input_tensor=dense_filter)
*** ValueError: You are trying to load a weight file containing 241 layers into a model with 242 layers.

有没有更好的方法在 keras 中对具有不同输入 channel 数量的数据使用预训练模型?当输入 channel 的数量不同时,预训练甚至会有所帮助吗?

最佳答案

从技术上讲,这应该是可能的。也许使用模型的__call__本身:

orig_model = tf.keras.applications.DenseNet121(include_top=False, weights='imagenet')
dense_input = tf.keras.layers.Input(shape=(448, 448, 6))
dense_filter = tf.keras.layers.Conv2D(3, 3, padding='same')(dense_input)
output = orig_model(dense_filter)

model = tf.keras.Model(dense_input, output)
model.compile(...)
model.summary()

不过,在概念层面上,我担心新输入看起来与训练预训练模型的原始输入不太一样。

关于python - 将输入 channel 数更改为预训练的 keras.applications 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55944771/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com