集智专栏
资源加载中,请稍后...
集智专栏

视频翻译:深度学习处理服饰图片识别

视频原链接https://www.youtube.com/watch?v=RJudqel8DVA


在线编程

1 First attempt:Linear classifier

请将代码中的____替换为正确内容,并点击运行按钮运行程序、检查结果。

程序说明
Feature columns
预处理代码
import os, shutil data_list = os.listdir('/mnt/vol0/tensorflow/fashion-mnist') for i in data_list: shutil.copy('/mnt/vol0/tensorflow/fashion-mnist/' + i, '/home/jovyan/work')
示例代码
import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data import numpy as np tf.logging.set_verbosity(tf.logging.INFO) # 输出TensorFlow版本 print(tf.__version__) # 设置模型目录 base_model_dir = "tfmodels/fashion_mnist/" # 二维图片 --> 一维像素 feature_columns = [ tf.feature_column.numeric_column( 'pixels', shape=____) ]
正确答案
feature_columns = [tf.feature_column.numeric_column('pixels', shape=784)]
程序验证过程
feature_columns[0][1] == (784,)
提示信息
28x28的图片矩阵展开成一维像素列表,应该有几个元素?


2 Create your model

请将代码中的____替换为正确内容,并点击运行按钮运行程序、检查结果。

程序说明
线性分类器
示例代码
# 创建线性分类器 n_classes = ____ classifier = tf.estimator.LinearClassifier(feature_columns=feature_columns, n_classes=n_classes, model_dir=base_model_dir + 'linear') # 读取数据集 # 为节省线上运行时间,这里实际只读取了10000个训练样本和2000个测试样本 data_train = np.loadtxt('fashion-mnist_train.csv', delimiter=",", skiprows=50001) data_test = np.loadtxt('fashion-mnist_test.csv', delimiter=",", skiprows=8001) print("Data loaded.")
正确答案
n_classes = 10
程序验证过程
n_classes == 10
提示信息
回顾视频中fashion mnist的数据集属性,找到类别总数。


3 Train and Evaluate

请点击运行按钮运行程序并查看结果。

程序说明
训练-评估
示例代码
# 定义输入函数 def make_input_fn(data, batch_size, num_epochs, shuffle): return tf.estimator.inputs.numpy_input_fn( x={'pixels': data[0:, 1:]}, y=data[:,0].astype(np.int64), batch_size=batch_size, num_epochs=num_epochs, shuffle=shuffle) # 训练模型 classifier.train(input_fn=make_input_fn(data_train, batch_size=100, num_epochs=2, shuffle=True)) # 评估准确度 accuracy_score = classifier.evaluate(input_fn=make_input_fn(data_test, batch_size=100, num_epochs=5, shuffle=False))['accuracy'] print(accuracy_score)
程序验证过程
accuracy_score > 0.75


4 Deep model

请点击运行按钮运行程序并查看结果。

程序说明
训练-评估
示例代码
# 创建深度分类器 deep_classifier = tf.estimator.DNNClassifier( feature_columns=feature_columns, n_classes=10, hidden_units=[200, 100, 50], model_dir=base_model_dir + "deep" ) # 训练模型 deep_classifier.train(input_fn=make_input_fn(data_train, batch_size=100, num_epochs=10, shuffle=True)) # 评估准确度 accuracy_score = deep_classifier.evaluate( input_fn=make_input_fn(data_test, batch_size=100, num_epochs=5, shuffle=False))['accuracy'] print(accuracy_score)
程序验证过程
accuracy_score > 0.7


5 实地预测

请点击运行按钮运行程序并查看结果。

程序说明
实地预测
示例代码
# 定义预测输入函数 # 因为之前仅读入2000个测试样本,故此处选择1000:1005 predict_input_fn = tf.estimator.inputs.numpy_input_fn( x={'pixels': data_test[1000:1005, 1:]}, batch_size=1, num_epochs=1, shuffle=False) predictions = deep_classifier.predict(input_fn=predict_input_fn) # 进行预测 for prediction in predictions: print("Predictions: {} with probabilities {}\n".format( prediction["classes"], prediction["probabilities"])) print('Expected answers values: {}'.format( data_test[1000:1005, 0])) # 可视化真实结果 import matplotlib.pyplot as plt %matplotlib inline for i in range(1000,1005): sample = np.reshape(data_test[i, 1:], (28,28)) plt.figure() plt.title("Correct label: {}".format(data_test[i, 0].astype(np.int))) plt.imshow(sample, 'gray')
程序验证过程
True


怎么样,Expected answers valuesCorrect label是否一一对应呢?

您也许喜欢这些文章

深度增强学习DQN

发表至数据科学
让月球登陆器平稳着陆,传统的方法是使用复杂的反馈控制技术,比如PID。而深度增强学习的发展使得我们的飞行器有可能自己学会如何降落!本文用Python实现深度Q网络(Deep Q-network),内含详细配置过程和完整案例代码。

《机器学习有意思! 03》- 深度学习与卷积神经网络

发表至趣味项目
《机器学习有意思!》系列的第三篇,讲解了深度学习图像处理的核心概念——卷积神经网络。首先从简单的手写数字识别案例切入,引出卷积计算的必要性。最后基于著名的CIFAR10数据集,从0搭建一个简易的卷积神经网络,并训练出鸟类图像识别分类器。

数学不行还学AI - 第5话 - 神经网络平话演义(下)

发表至趣味项目
《神经网络平话演义》下集,承接上集,对神经网络的一些重要概念进行了概括总结,并对人工智能的发展和未来做了展望。

文章评论(0)