为什么80%的码农都做不了架构师?>>>
例子1
先从helloworld开始:
t@ubuntu:~$ python
Python 2.7.6 (default, Oct 26 2016, 20:30:19)
[GCC 4.8.4] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> hello=tf.constant('hello,tensorFlow!')
>>> sess = tf.Session()
>>> print sess.run(hello)
hello,tensorFlow!
>>> a = tf.constant(10)
>>> b = tf.constant(122)
>>> print sess.run(a+b)
132
接下去两个步骤:1,学python;2,看ts;
例子2
手写数字识别,在ubuntu中安装部署好环境;
代码源自https://github.com/niektemme/tensorflow-mnist-predict
创建训练用python代码
# Copyright 2016 Niek Temme.
# Adapted form the on the MNIST biginners tutorial by Google.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# =============================================================================="""A very simple MNIST classifier.
Documentation at
http://niektemme.com/ @@to doThis script is based on the Tensoflow MNIST beginners tutorial
See extensive documentation for the tutorial at
https://www.tensorflow.org/versions/master/tutorials/mnist/beginners/index.html
"""#import modules
import tensorflow as tf
from tensorflow.examples.tutorials.mnist import input_data#import data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)# Create the model
x = tf.placeholder(tf.float32, [None, 784])
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)# Define loss and optimizer
y_ = tf.placeholder(tf.float32, [None, 10])
cross_entropy = -tf.reduce_sum(y_*tf.log(y))
train_step = tf.train.GradientDescentOptimizer(0.01).minimize(cross_entropy)# init_op = tf.global_variables_initializer() 看版本,使用该行还是使用下面那行
init_op = tf.initialize_all_variables()
saver = tf.train.Saver()# Train the model and save the model to disk as a model.ckpt file
# file is stored in the same directory as this python script is started
"""
The use of 'with tf.Session() as sess:' is taken from the Tensor flow documentation
on on saving and restoring variables.
https://www.tensorflow.org/versions/master/how_tos/variables/index.html
"""
with tf.Session() as sess:sess.run(init_op)for i in range(1000):batch_xs, batch_ys = mnist.train.next_batch(100)sess.run(train_step, feed_dict={x: batch_xs, y_: batch_ys})save_path = saver.save(sess, "/tmp/model.ckpt")print ("Model saved in file: ", save_path)
测试代码
# Copyright 2016 Niek Temme.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# =============================================================================="""Predict a handwritten integer (MNIST beginners).Script requires
1) saved model (model.ckpt file) in the same location as the script is run from.
(requried a model created in the MNIST beginners tutorial)
2) one argument (png file location of a handwritten integer)Documentation at:
http://niektemme.com/ @@to do
"""#import modules
import sys
import tensorflow as tf
from PIL import Image,ImageFilterdef predictint(imvalue):"""This function returns the predicted integer.The imput is the pixel values from the imageprepare() function."""# Define the model (same as when creating the model file)x = tf.placeholder(tf.float32, [None, 784])W = tf.Variable(tf.zeros([784, 10]))b = tf.Variable(tf.zeros([10]))y = tf.nn.softmax(tf.matmul(x, W) + b)init_op = tf.global_variables_initializer()saver = tf.train.Saver()"""Load the model.ckpt filefile is stored in the same directory as this python script is startedUse the model to predict the integer. Integer is returend as list.Based on the documentatoin athttps://www.tensorflow.org/versions/master/how_tos/variables/index.html"""with tf.Session() as sess:sess.run(init_op)saver.restore(sess, "/tmp/model.ckpt")#print ("Model restored.")prediction=tf.argmax(y,1)return prediction.eval(feed_dict={x: [imvalue]}, session=sess)def imageprepare(argv):"""This function returns the pixel values.The imput is a png file location."""im = Image.open(argv).convert('L')width = float(im.size[0])height = float(im.size[1])newImage = Image.new('L', (28, 28), (255)) #creates white canvas of 28x28 pixelsif width > height: #check which dimension is bigger#Width is bigger. Width becomes 20 pixels.nheight = int(round((20.0/width*height),0)) #resize height according to ratio widthif (nheigth == 0): #rare case but minimum is 1 pixelnheigth = 1 # resize and sharpenimg = im.resize((20,nheight), Image.ANTIALIAS).filter(ImageFilter.SHARPEN)wtop = int(round(((28 - nheight)/2),0)) #caculate horizontal pozitionnewImage.paste(img, (4, wtop)) #paste resized image on white canvaselse:#Height is bigger. Heigth becomes 20 pixels. nwidth = int(round((20.0/height*width),0)) #resize width according to ratio heightif (nwidth == 0): #rare case but minimum is 1 pixelnwidth = 1# resize and sharpenimg = im.resize((nwidth,20), Image.ANTIALIAS).filter(ImageFilter.SHARPEN)wleft = int(round(((28 - nwidth)/2),0)) #caculate vertical pozitionnewImage.paste(img, (wleft, 4)) #paste resized image on white canvas#newImage.save("sample.png")tv = list(newImage.getdata()) #get pixel values#normalize pixels to 0 and 1. 0 is pure white, 1 is pure black.tva = [ (255-x)*1.0/255.0 for x in tv] return tva#print(tva)def main(argv):"""Main function."""imvalue = imageprepare(argv)predint = predictint(imvalue)print (predint[0]) #first value in listif __name__ == "__main__":main(sys.argv[1])
运行结果:
矩阵-线性代数-http://www2.edu-edu.com.cn/lesson_crs78/self/j_0022/soft/ch0605.html
这本书不错:超智能体https://yjango.gitbooks.io/superorganism/content/dai_ma_yan_shi_2.html