TensorFlow 学习笔记-入门篇

来源:互联网 发布:安卓apo源码 编辑:程序博客网 时间:2024/06/15 02:14


      TensorFlow 是一个基于图进行计算的一个系统,在创建模型的时候,先要创建节点,节点之间的关系要由一些操作去算出来。

      在定义好节点,以及各个节点之间的关系后,真正发生操作一般是要进行session.run()  或eval().


   如下是定义了两个常量 input1,input2,这两个常量是一个一维向量。


    input1 = tf.constant([1.0, 1.0, 1.0, 1.0])

 

   input2 = tf.constant([2.0, 2.0, 2.0, 2.0])

如下是定义input1 与input2 的关系 add.

output = tf.add(input1, input2)

可以看下执行 

                         print output

                         print output.eval()

 从而可看见他们之间的差异。

只有执行了output.eval(),节点操作才完成!


使用python执行下面这段代码:


with tf.Session():

 

   input1 = tf.constant(1.0, shape=[4])

 

   input2 = tf.constant(2.0, shape=[4])

 

   input3 = tf.constant(3.0, shape=[4])

 

   output = tf.add(tf.add(input1, input2), input3)

 

   result = output.eval()

 

   print(result)

 

输出:

[ 6. 6.  6.  6.]



#@test {"output":"ignore"}

 

import tensorflow as tf

 

import numpy as np

 

​ 

with tf.Session() as sess:

 

    #申明两个变量 total,weights,total 是一个1x2 的向量,weights 也是一个1x2的向量,后面将对这两个变量进行赋值5次。

 

   total = tf.Variable(tf.zeros([1, 2]))

 

   weights = tf.Variable(tf.random_uniform([1,2]))

 

​ 

    #对上面的变量执行初始化,让初始化真正生效

 

   tf.global_variables_initializer().run()

 

 

    #这里只是简单的定义下一个赋值操作,一个加法操作,再进行一次赋值操作 

    #当然这些操作只是做了一个说明,这是tensorflow 特有的方式,并没有真正执行这些操作。

 

   update_weights = tf.assign(weights, tf.random_uniform([1, 2], -1.0,1.0))

 

   update_total = tf.assign(total, tf.add(total, weights))

 

 

 # 定义一个5次的for 循环

   for _ in range(5):

 

       # 真正发生的图操作开始,首先随机生成weights,然后加到totals里。

      # 注意他们是有先后执行顺序的,不能搞错了。

 

       sess.run(update_weights)

 

       sess.run(update_total)

 

   

 

       print(weights.eval(), total.eval())

 

输出:


[[ -7.29560852e-05   8.01583767e-01]] [[ -7.29560852e-05   8.01583767e-01]]

[[ 0.64477301 -0.03944111]] [[0.64470005  0.76214266]]

[[-0.07470274 -0.76814342]] [[ 0.56999731-0.00600076]]

[[-0.34230471 -0.42372179]] [[0.2276926  -0.42972255]]

[[ 0.67873812  0.65932178]] [[ 0.90643072  0.22959924]]


以上是参考的一个例子,自己重新手打输入一遍,加入对自己的理解。以便加深理解!