tensorflow笔记【5】深度学习-自制数据集

  • Post author:
  • Post category:其他


tensorflow笔记【5】深度学习-自制数据集




前言

自制数据集帮助了解数据集的制作过程。




一、生成数据集方法



1.准备图片数据和每张图片对应的标签数据,放在训练集和测试集文件夹

代码如下:

# 2.自制数据集---generateds(图片路径,标签文件)
# 2.1加载训练集,测试集图片,标签文件;定义数据集输入特征和标签存储文件
train_path = 'mnist_image_label/mnist_train_jpg_11/'
train_txt = 'mnist_image_label/mnist_train_jpg_11.txt'


test_path = 'mnist_image_label/mnist_test_jpg_3/'
test_txt = 'mnist_image_label/mnist_test_jpg_3.txt'


# 2.2定义自制数据集函数----generateds(图片路径,标签文件)
def generateds(path, txt):
    f = open(txt, 'r')
    contents = f.readlines()
    f.close()
    x, y_ = [], []
    
    for content in contents:
        value = content.split(' ')
        img_path = path + value[0]
        img = Image.open(img_path)
        img = np.array(img.convert('L'))
        img = img / 255
        
        x.append(img)
        y_.append(value[1])
        print('loading:' + content)
    
    x = np.array(x)
    y_ = np.array(y_)
    y_ = y_.astype(np.int64)
    return x, y_


# 2.3判断数据集是否制作完成---制作:直接读取;未制作:调用generateds()制作数据集

print('---------------Generate Datasets------------')
x_train, y_train = generateds(train_path, train_txt)
x_test, y_test = generateds(test_path, test_txt)



2.搭建网络训练

代码如下:

# 3.搭建网络模型-----Sequential
model = tf.keras.Sequential([tf.keras.layers.Flatten(),
                             tf.keras.layers.Dense(128, activation='relu'),
                             tf.keras.layers.Dense(10, activation='softmax')

                             ])

# 4.为网络模型配置训练方法----compile
model.compile(optimizer='adam',
              loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=False),
              metrics=['sparse_categorical_accuracy']

              )

# 5。传入数据集,训练网络----fit
model.fit(x_train, y_train, batch_size=32, epochs=50,
          validation_data=(x_test, y_test),
          validation_freq=1)

# 6.打印网络模型和参数----summary
model.summary()




总结

图片尺寸不一致时,加上

img.resize(())



版权声明:本文为qq_62625255原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。