原始CIFAR-10到CNN输入,带有numpy和tensorflow



我是使用Python和Tensorflow的NN的新手,我正在尝试为我的CNN创建输入。我有用于训练图像的CIFAR10数据集,Python中的50000x3072列表(包含3072个元素的50000个列表的列表(,并且我没有使用keras中的CIFAR10数据集。CNN与用于基本TF示例的CNN相同:https://www.tensorflow.org/tutorials/images/cnn每个3072个元素列表都有以下组织:前1024个元素用于第一个颜色通道,第二个元素1024用于第二个颜色通道等等。我想使用numpy数组来组织这个列表,方法与keras中使用的方法相同(32行的np数组,每个行包含32个三维列表的np数组(每个像素3个颜色通道((。

我试着使用整形和其他基本函数,但我不确定该怎么做才能得到结果。

要将数据从(5000003072(大小转换为CNN所需的大小,可以使用tf.reshape,如下所示:

!pip install tensorflow==2.1
import tensorflow as tf
import numpy as np
tf.__version__
a = tf.constant(np.zeros((50000,3072)))
a.shape #TensorShape([50000, 3072])
b = tf.reshape(a, [-1,32,32,3])
b.shape #TensorShape([50000, 32, 32, 3])

在CNN的第一层中,您可以指定输入形状,如下所述:

model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))

有关tf.reshape的更多信息,请参阅Tensorflow页面。

有关CIFAR数据集上CNN的更多信息,请参阅Tensorflow网站上的CNN教程。

最新更新