mnist之于机器学习,便如同hello world之于程序语言。
code
本文主要是代码汇总,不涉及具体理论。
主要内容如下:
1)线性回归
2)logistic回归
3)人工神经网络
4)cnn
5)双端lstm
6)模型的保存和加载
7)其他
- word2vec
https://github.com/fangpin/daily_programs/blob/master/python/tensorflow/word2vec_basic.py
- chatbot(seq2seq)
https://github.com/fangpin/daily_programs/tree/master/python/tensorflow/chatbot
- time series predection(双端lstm)
https://github.com/fangpin/daily_programs/tree/master/python/tensorflow/time-series-predection
免责申明
文中代码难免naive,仅供参考。
线性回归
import numpy as np
import tensorflow as tf
x_data = np.float32(np.random.rand(2,100))
y_data = np.dot([2.0,3.0],x_data) + 0.8
b = tf.Variable(tf.zeros([1]))
w = tf.Variable(tf.random_uniform([1,2],-1.0,1.0))
y = tf.matmul(w,x_data) + b
loss = tf.reduce_mean(tf.square(y-y_data))
train = tf.train.GradientDescentOptimizer(0.5).minimize(loss)
init = tf.initialize_all_variables()
sess = tf.Session()
sess.run(init)
for step in range(1001):
sess.run(train)
if step%100 == 0:
print step , sess.run(w) , sess.run(b)
logistic回归
from __future__ import absolute_import
from __future__ import division
# Import data
import input_data
import tensorflow as tf
flags = tf.app.flags
FLAGS = flags.FLAGS
flags.DEFINE_string('data_dir', '/tmp/data/', 'Directory for storing data')
mnist = input_data.read_data_sets(FLAGS.data_dir, one_hot=True)
x_data = tf.placeholder(tf.float32,[None,784])
w = tf.Variable(tf.random_uniform([784,10],-1.0,1.0),name='weights')
b = tf.Variable(tf.random_uniform([10],-1.0,1.0),name='biase')
init = tf.initialize_all_variables()
y = tf.nn.softmax(tf.matmul(x_data,w)+b)
y_ = tf.placeholder(tf.float32,[None,10])
cross_entropy = tf.reduce_mean(-tf.reduce_sum(y_ * tf.log(y), reduction_indices=[1]))
train_step = tf.train.GradientDescentOptimizer(1).minimize(cross_entropy)
correct_predection = tf.equal(tf.argmax(y,1),tf.argmax(y_,1))
p = tf.reduce_mean(tf.cast(correct_predection,"float"))
tf.scalar_summary('cross_entropy',cross_entro