博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
机器学习-tensorflow
阅读量:5951 次
发布时间:2019-06-19

本文共 6792 字,大约阅读时间需要 22 分钟。

  hot3.png

例子1

先从helloworld开始: 

t@ubuntu:~$ pythonPython 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4.8.4] on linux2Type "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 athttp://niektemme.com/ @@to doThis script is based on the Tensoflow MNIST beginners tutorialSee extensive documentation for the tutorial athttps://www.tensorflow.org/versions/master/tutorials/mnist/beginners/index.html"""#import modulesimport tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_data#import datamnist = input_data.read_data_sets("MNIST_data/", one_hot=True)# Create the modelx = 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 optimizery_ = 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 documentationon 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 requires1) 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 modulesimport sysimport tensorflow as tffrom 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 file    file is stored in the same directory as this python script is started    Use the model to predict the integer. Integer is returend as list.    Based on the documentatoin at    https://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 pixels        if 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 width        if (nheigth == 0): #rare case but minimum is 1 pixel            nheigth = 1          # resize and sharpen        img = im.resize((20,nheight), Image.ANTIALIAS).filter(ImageFilter.SHARPEN)        wtop = int(round(((28 - nheight)/2),0)) #caculate horizontal pozition        newImage.paste(img, (4, wtop)) #paste resized image on white canvas    else:        #Height is bigger. Heigth becomes 20 pixels.         nwidth = int(round((20.0/height*width),0)) #resize width according to ratio height        if (nwidth == 0): #rare case but minimum is 1 pixel            nwidth = 1         # resize and sharpen        img = im.resize((nwidth,20), Image.ANTIALIAS).filter(ImageFilter.SHARPEN)        wleft = int(round(((28 - nwidth)/2),0)) #caculate vertical pozition        newImage.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 list    if __name__ == "__main__":    main(sys.argv[1])

运行结果:

150414_VKrk_856051.png

矩阵-线性代数-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

 

转载于:https://my.oschina.net/u/856051/blog/869692

你可能感兴趣的文章
HDU 4558 剑侠情缘
查看>>
HOWTO install Cygwin
查看>>
Java基本数据类型总结
查看>>
Select prototyping tools
查看>>
[linux] mtu查看&&设置
查看>>
性能测试诊断分析与优化培训资料打包下载
查看>>
Web API应用架构在Winform混合框架中的应用(3)--Winfrom界面调用WebAPI的过程分解...
查看>>
微服务演化
查看>>
ELASTIC SEARCH 性能调优
查看>>
jQuery笔记——jQuery选择器实例应用
查看>>
LRU
查看>>
[转]模拟芯片设计的四重境界
查看>>
C# 串口操作系列(1) -- 入门篇,一个标准的,简陋的串口例子。
查看>>
NSLog 使用
查看>>
【翻译】ASP.NET WEB API异常处理
查看>>
UDP打洞实验
查看>>
Agglomerated SSL 1.2.0 发布
查看>>
前端智勇大闯关-第二季-第三题
查看>>
windows 下使用github
查看>>
ubuntu apache fastcgi 虚拟主机安装
查看>>