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

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

朝阳

视频原链接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是否一一对应呢?

您也许喜欢这些文章

集智专栏

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

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

[2018.05.08直播] Python之面向对象

发表至系列教程
2018年5月8日直播配套专栏,介绍Python的面向对象特性,并参照TensorFlow的计算图机制,尝试手动“山寨”一套深度学习框架。
集智专栏

走近深度学习——来解决一个年龄检测的问题

发表至数据科学
深度学习技术已经可以用在我们生活中的很多地方,比如说人脸识别,甚至是根据人脸图片来获取更多信息,这些技术一旦成熟,对于信息交互、隐私保护、犯罪侦查等都有极为重要的意义。这次让我们从一个可以实际体验的例子出发,看看如何使用神经网络来通过人们的图片来猜测他们的年龄。

文章评论(1)

新用户791 发表于 5月前回复
笔记真厉害!