计算机语言分类图,【上手机器学习第一天】记录做一个简单的图片分类的一天...

[Python] 纯文本查看 复制代码from __future__ import absolute_import, division, print_function, unicode_literals

import tensorflow as tf

from tensorflow import keras

import numpy as np

import matplotlib.pyplot as plt

#导入数据库(训练集和测试集)

fashion_mnist = keras.datasets.fashion_mnist

(train_images,train_labels),(test_images,test_labels) = keras.datasets.fashion_mnist.load_data()

#定义每个图片对应的标签

class_names = ['T-shirt/top', 'Trouser', 'Pullover', 'Dress', 'Coat',

'Sandal', 'Shirt', 'Sneaker', 'Bag', 'Ankle boot']

#以下是检查导入的数据是否成功

#print(train_images.shape)

# plt.figure()

# plt.imshow(train_images[0])

# plt.colorbar()

# plt.grid(False)

# plt.show()

#tensorflow神经模型只接受0-1的浮点数,所以除以255(个人理解:一个像素点是一个字节,

# 一字节等于8bit,就是2的8次方减一)把所有数据转换到0到1之间来

# train_images=train_images/255.0

# test_images=test_images/255.0

#输出训练集中25副图及对应的标签

# plt.figure(figsize=(10,10))#定义画布大小

# for i in range(25):

# plt.subplot(5,5,i+1)

# # plt.xticks([])#定义x轴刻度空白

# # plt.yticks([])#定义y周刻度空白

# plt.grid(False)#去掉网格线

# plt.imshow(train_images[i],cmap=plt.cm.binary)

# plt.xlabel(class_names[train_labels[i]])#显示每幅图对应的标签

# plt.show()#显示每幅图

#定义输出测试集输中的图片及标签函数

def plot_image(i,predicitions_array,true_label,img):

predicitions_array,true_label,img = predicitions_array , true_label[i],img[i]

plt.grid(False)

plt.xticks([])

plt.yticks([])

plt.imshow(img,cmap=plt.cm.binary)

predicited_label=np.argmax(predicitions_array)

if predicited_label == true_label:

color='blue'

else:

color='red'

plt.xlabel('{}{:2.0f}%({})'.format(class_names[predicited_label],100*np.max(predicitions_array),

class_names[true_label],

color=color))

#定义输出测试集中每幅图片对应的自信度的柱状图

def plot_value_array(i,predictions_array,true_label):

predictions_array,true_label=predictions_array,true_label[i]

plt.grid(False)

plt.xticks(range(10))

plt.yticks([])

thisplot = plt.bar(range(10),predictions_array,color='#777777')

plt.ylim([0,1])

predicted_label = np.argmax(predictions_array)

thisplot[predicted_label].set_color('red')

thisplot[true_label].set_color('blue')

#建立神经网络模型

#设置图层

model = keras.Sequential([

keras.layers.Flatten(input_shape=(28,28)),

keras.layers.Dense(128,activation='relu'),

keras.layers.Dense(10)

])

#定义编译模型

model.compile(optimizer='adam',

loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),

metrics=['accuracy'])

#训练模型

model.fit(train_images,train_labels,epochs=10)#给模型

# test_loss,test_acc = model.evaluate(test_images,test_labels,verbose=2)#评估精度

# print('\nTest accuracy:',test_acc)

#做出预测

probability_model = tf.keras.Sequential([model,

tf.keras.layers.Softmax()])

#得到一个对数组每个元素是由10个数字组成的数组。它们代表了

# 模特的“自信”,即这个形象对应于10件不同的衣服中的每一件。

# 可以看到哪个标签具有最高的置信度值

predictions=probability_model.predict(test_images)

# print(predictions.shape)

# print(predictions[0])

#验证预测

# i=0

# plt.figure(figsize=(6,3))

# plt.subplot(1,2,1)

# plot_image(i,predictions[0],test_labels,test_images)

# plt.subplot(1,2,2)

# plot_value_array(i, predictions[i], test_labels)

# plt.show()

#

# i=12

# plt.figure(figsize=(6,3))

# plt.subplot(1,2,1)

# plot_image(i,predictions[0],test_labels,test_images)

# plt.subplot(1,2,2)

# plt.show()

#输出测试集1-15副图及预测结果

num_rows = 5

num_cols = 3

num_images = num_rows*num_cols

plt.figure(figsize=(2*2*num_cols,2*num_rows))

for i in range(num_images):

plt.subplot(num_rows,2*num_cols,2*i+1)

plot_image(i,predictions[i],test_labels,test_images)

plt.subplot(num_rows,2*num_cols,2*i+2)

plot_value_array(i,predictions[i],test_labels)

plt.tight_layout()

plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值