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

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(())
经验分享 程序员 微信小程序 职场和发展