Tensorflow for Deep Learning 1

Author Avatar
Xin Qiu Jan 20, 2017
  • Read this article on other device

笔记1: 介绍TensorFlow

“CS 20SI: TensorFlow for Deep Learning Research” (http://cs20si.stanford.edu) 这门课是由Chip Huyen(huyenn@stanford.edu)老师上的,我就简单的做做笔记整理> <.

Tensorflow是什么,它很火,哪些公司在用它,它是如何安装的,我这里就不啰嗦了,这些内容网上一大把。

一.开始写Tensorflow代码

这部分内容是可以跳过的,讲的是简单的一个tf程序。(我添加了导入一些包,不然运行不了)

# iris.py
# 
# Load dataset.
import tensorflow as tf
from sklearn import cross_validation
import numpy as np
from sklearn import metrics

iris = tf.contrib.learn.datasets.load_dataset('iris')

x_train, x_test, y_train, y_test = cross_validation.train_test_split(iris.data, iris.target, test_size=0.2, random_state=42)

# Build 3 layer DNN with 10, 20, 10 units respectively.
feature_columns = tf.contrib.learn.infer_real_valued_columns_from_input(x_train)

classifier = tf.contrib.learn.DNNClassifier(feature_columns=feature_columns, hidden_units=[10, 20, 10], n_classes=3)

# Fit and predict.
classifier.fit(x_train, y_train, steps=200)

predictions = list(classifier.predict(x_test, as_iterable=True))
score = metrics.accuracy_score(y_test, predictions)
print('Accuracy: {0:f}'.format(score))

运行结果 Accuracy: 0.933333

1. TF Learn (tf.contrib.learn)

TensorFlow的简单接口,TF Learn (tensorflow.contrib.learn),提供已经实现的模型可供使用者简单的调用。类似scikit learn,通过简单的几行代码就可以开始深度学习。事实上TF Learn期初是Scikit Flow (SKFlow)这个独立的项目。

TF Learn可以导入数据,构造模型,模型拟合,评估准确性。很多模型可以调用,比如线性分类,线性回归,DNN分类器。

2. TF-Slim (tf.contrib.slim)

TF-Slim可以用来简单构建、训练、评估神经网络。

3. TensorFlow之上的高级APIs

有很多基于TensorFlow的APIs, 比如Keras (keras@GitHub), TFLearn (tflearn@GitHub), 和 Pretty Tensor (prettytensor@GitHub)。现在据说Keras准备作为官方默认API了,Keras真的超级好用> <.

TFLearn支持ConvNets, LSTM, BiRNN, ResNets, Generative networks以及一些特征BatchNorm, PReLU.

当然啦,TensorFlow的目的不是提供开箱即用的机器学习工具箱,而是希望能够针对不同场景不同需求,更灵活的搭建合适的架构来自己使用。

Data Flow Graph (数据流图)

TF使用数据流图,所有的计算都在图(graphs)中。session(这个我也不知道中文该怎么称呼,感觉英文就挺好的)用来分配给变量内存。参考这篇文章什么是tensorflow session。总之就是图是用来定义计算的,session是执行图里的计算的。

note 1 结束了,感觉有点少,算是入坑的开头吧> <