我正在尝试将MNIST数据集转换为RGB格式,每个图像的实际形状是(28,28),但我需要(28,28,3)。在
import numpy as np
import tensorflow as tf
mnist = tf.keras.datasets.mnist
(x_train, _), (x_test, _) = mnist.load_data()
X = np.concatenate([x_train, x_test])
X = X / 127.5 - 1
X.reshape((70000, 28, 28, 1))
tf.image.grayscale_to_rgb(
X,
name=None
)
但我得到了以下错误:
^{pr2}$
如果你之前打印X的形状tf.image.grayscale_到\u rgb您将看到输出维度是(70000,28,28)。输入到tf.image.灰度尺寸必须为1作为最终尺寸。在
展开X的最后一个维度,使其与函数兼容
应将重塑后的3D[28x28x1]图像存储在数组中:
转换时,将另一个数组设置为
^{pr2}$tf.image.grayscale_to_rgb()
函数的返回值:最后,用
matplotlib
和tf.session()
从得到的张量图像中画出一个例子:完整代码:
除了@DMolony和@Aqwis01答案外,另一个简单的解决方案是使用
numpy.repeat
方法将张量的最后一个维度复制几次:相关问题 更多 >
编程相关推荐