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

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

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

您也许喜欢这些文章

浅说深度学习(4):增强学习

发表至系列教程
系列最后一篇,本篇主要介绍了增强学习的基本理论,主要内容:价值和策略函数,Q-Learning

玩儿懂深度学习Part 2:Tensorflow 简明原理

发表至系列教程
这是《玩儿懂深度学习》系列的第二篇,介绍了 Tensorflow 的原理,以及如何用最森破的Python代码进行功能实现。

深度学习环境搭建手册——安装Nvidia、Cuda、CuDNN、TensorFlow以及Keras

发表至数据科学
本文简要介绍了在Ubuntu系统上搭建基于GPU的深度学习运行环境所需要的各类深度学习驱动、工具以及软件包的安装流程和注意事项。

文章评论(0)