【发布时间】:2018-11-05 22:02:58
【问题描述】:
ThisTensorflow 教程将一个已经存在的数据集 (MNIST) 加载到代码中。相反,我想插入我自己的训练和测试图像。
def main(unused_argv):
# Load training and eval data
mnist = tf.contrib.learn.datasets.load_dataset("mnist")
train_data = mnist.train.images # Returns np.array
train_labels = np.asarray(mnist.train.labels, dtype=np.int32)
eval_data = mnist.test.images # Returns np.array
eval_labels = np.asarray(mnist.test.labels, dtype=np.int32)
它说它返回一个原始像素值的 np 数组。
我的问题:
1.如何为我自己的图像集创建这样一个 numpy 数组? 我想这样做,这样我就可以在示例代码中直接替换我的 numpy 数组而不是这个 MNIST 数据,并根据我的数据(0-9 和 A-Z)训练模型。
编辑:经过进一步分析,我意识到mnist.train.images 和mnist.test.images 中的像素值已在 0 到 1 之间从 0 到 255 标准化(我想)这是怎么回事标准化帮助?
文件夹结构:训练和测试文件夹在同一个文件夹中
Training folder:
--> 0
-->Image_Of_0.png
--> 1
-->Image_Of_1.png
.
.
.
--> Z
-->Image_Of_Z.png
Testing folder:
--> 0
-->Image_Of_0.png
--> 1
-->Image_Of_1.png
.
.
.
--> Z
-->Image_Of_Z.png
我写的代码:
Names = [['C:\\Users\\xx\\Project\\training-images', 'train',9490], ['C:\\Users\\xx\\Project\\test-images', 'test',3175]]
#9490 is the number of training files in total (All the PNGs)
#3175 is the number of testing files in total (All the PNGs)
for name in Names:
FileList = []
for dirname in os.listdir(name[0]):
path = os.path.join(name[0], dirname)
for filename in os.listdir(path):
if filename.endswith(".png"):
FileList.append(os.path.join(name[0], dirname, filename))
print(FileList)
## Creates list of all PNG files in training and testing folder
x_data = np.array([np.array(cv2.imread(filename)) for filename in FileList])
pixels = x_data.flatten().reshape(name[2], 2352) #2352 = 28 * 28 * 3 image
print(pixels)
创建的像素数组能否作为训练和测试数据提供,即它是否与示例代码中提供的数据具有相同的格式?
2。同样,必须为所有标签创建什么 numpy 数组? (文件夹名称)
【问题讨论】:
标签: python numpy tensorflow deep-learning tensor