gpt4 book ai didi

python-3.x - 将 MNIST 图像从 (28, 28, 1) 填充到 (32, 32, 1)

转载 作者:行者123 更新时间:2023-12-04 10:11:40 26 4
gpt4 key购买 nike

我正在使用 TensorFlow 2.0 的 MNIST 数据集,并尝试用零填充它并将图像大小从 (28, 28, 1) 增加到 (32, 32, 1)。代码是:

# Load MNIST dataset-
(X_train, y_train), (X_test, y_test) = tf.keras.datasets.mnist.load_data()

X_train.shape, y_train.shape
# ((60000, 28, 28), (60000,))

X_test.shape, y_test.shape
# ((10000, 28, 28), (10000,))

# Pad with 2 zeros on left and right hand sides-
X_train_padded = np.pad(X_train[:,], (2, 2), 'constant')

X_train_padded.shape
# (60004, 32, 32)

但是,上面使用的 'np.pad()' 函数没有给我想要的 (6000, 32, 32) 形状,而且它返回填充零的数组!而不是 X_train 中的原始值。

你能帮我吗?

我使用的是 Python 3.8、TensorFlow 2.0 和 numpy 1.18。

谢谢!

最佳答案

您正在使用 numpy.pad 错误的。

  • 您的阵列是 (6000,32,32) ,所以你只想填充轴 1 和 2,而不是轴 0。
  • pad_width论据 np.pad像这样工作:((axis 1 pad before, axis 1 pad after), ...)所以如果你想在每一边填充 1 个像素,你应该做 ((0,0), (1,1), (1,1)) . (您的代码正在填充每侧的所有轴 2。)

  • 这是一个玩具示例:

    z = np.arange(12).reshape(3,2,2)
    print(z.shape)
    # (3, 2, 2)

    z = np.pad(z, ((0,0),(1,1),(1,1)), 'constant')
    print(z.shape)
    # (3, 4, 4)

    # as an example, take a look at the second "image"
    print(z[1])
    # [[0 0 0 0]
    # [0 4 5 0]
    # [0 6 7 0]
    # [0 0 0 0]]

    关于python-3.x - 将 MNIST 图像从 (28, 28, 1) 填充到 (32, 32, 1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61309432/

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