python - 更改 Keras 中的输入大小

标签 python neural-network deep-learning keras

我用 Keras 训练了一个全卷积神经网络。我使用了 Functional API 并将输入层定义为 Input(shape=(128,128,3)),对应于我训练集中图像的大小。

但是,我想在可变 大小的图像上使用经过训练的模型(这应该没问题,因为网络是完全卷积的)。为此,我需要将输入层更改为 Input(shape=(None,None,3))。解决问题的明显方法是直接使用 (None,None,3) 的输入形状训练我的模型,但我使用自定义损失函数,我需要在其中指定我的大小训练图像。

我尝试定义一个新的输入层并将其分配给我的模型,如下所示:

from keras.engine import InputLayer

input_layer = InputLayer(input_shape=(None, None, 3), name="input")
model.layers[0] = input_layer

这实际上相应地改变了输入层的大小,但后面的层仍然需要 (128,128,filters) 输入。

有没有办法一次更改所有输入值?

最佳答案

创建一个新模型,完全一样,除了新的输入形状;和转移权重:

newModel.set_weights(oldModel.get_weights())

如果出现任何问题,则它可能不是完全卷积的(例如:包含 Flatten 层)。

关于python - 更改 Keras 中的输入大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50063237/

相关文章:

java - 反向传播算法-误差导数计算

algorithm - 反向传播可以同时训练两个异或问题吗?

python - Tensorflow 中的正确批量归一化功能是什么?

machine-learning - 理解卷积滤波器

python - python中的空值

javascript - 在一组字符串中找到最长的公共(public)起始子字符串

machine-learning - 感知器训练算法的输入可以有不同的类型吗?

neural-network - 如何计算 Google Net 初始模块的感受野?

python - JPG 到 PDF Nautilus 脚本(使用 ImageMagick)

python - 解析 crontab 样式的行