【问题标题】:Keras Conv2D layer has different output when using AWS Sagemaker使用 AWS Sagemaker 时,Keras Conv2D 层具有不同的输出
【发布时间】:2022-12-24 23:31:21
【问题描述】:

我一直在尝试在 AWS Sagemaker 上训练模型,因为我发现我的计算机不再强大到足以在合理的时间内训练我的模型。但是,当我尝试加载模型时(从我的计算机复制粘贴代码后)我遇到了意外错误。

稍作修改后,我发现第一个 Conv2D 层的输出形状与我计算机上的不同。

Sagemaker 输出维度:

(None, 128, 498, 3)

预期输出尺寸:

(None, 498, 498, 3)

我的代码如下:

import tensorflow as tf
from tensorflow import keras


model = keras.models.Sequential()

model.add(keras.Input(shape = (500,500,3)))
model.add(keras.layers.Conv2D(filters=128, kernel_size = (3,3), activation='relu'))

model.compile(optimizer=keras.optimizers.Adam(learning_rate=0.0001),
                loss=keras.losses.CategoricalCrossentropy(from_logits=True),
                metrics=['accuracy'])

model.summary()

我怎样才能解决这个问题?

【问题讨论】:

  • 你收到了什么错误?您是否确认您使用的是与本地计算机上相同的 TensorFlow 版本?

标签: tensorflow machine-learning keras artificial-intelligence amazon-sagemaker


【解决方案1】:

我来这里是因为我遇到了同样的问题。我找到了解决方案,但我仍然对此感到困惑。我只想提一下,我在本地和 sagemaker (2.10) 上使用相同的 tensorflow 版本。并且在两个完全相同的代码上。

如果你去https://keras.io/api/layers/convolution_layers/convolution2d/ 它指出:

"输出形状

具有形状的 4+D 张量:batch_shape + (filters, new_rows, new_cols)如果 data_format='channels_first'或具有形状的 4+D 张量:batch_shape + (new_rows, new_cols, filters)如果 data_format='channels_last'.由于填充,行和列值可能已更改。”

所以我强迫 Sagemaker 的版本`data_format='channels_last'现在本地版本和 AWS 版本都一致了。

`

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-18
    • 2020-06-05
    • 2019-04-10
    • 2020-04-29
    相关资源
    最近更新 更多