tensorflow學習之路(一):變量、常量、佔位符、圖、會話等基本概念介紹

在使用常量、變量等之前必須先導入tensorflow包

import tensorflow as tf

import numpy as np

1、常量 --constant

例如:    a = tf.constant(3)                b= tf.constant(9)

2、變量  --Variable

例如:     x = tf.Variable(0.)                y = tf.Variable(0.)

#注意變量的英文首字母是大寫的,變量必須要初始化之後才能使用,並且不能直接打印出變量,需要在會話中才能打印出數據。

3、常用操作符和基本數學函數

  1. # 算術操作符:+ - * / %
  2. tf.add(x, y, name=None) # 加法(支持 broadcasting)
  3. tf.subtract(x, y, name=None) # 減法
  4. tf.multiply(x, y, name=None) # 乘法
  5. tf.divide(x, y, name=None) # 浮點除法, 返回浮點數(python3 除法)
  6. tf.mod(x, y, name=None) # 取餘
  7. # 冪指對數操作符:^ ^2 ^0.5 e^ ln
  8. tf.pow(x, y, name=None) # 冪次方
  9. tf.square(x, name=None) # 平方
  10. tf.sqrt(x, name=None) # 開根號,必須傳入浮點數或複數
  11. tf.exp(x, name=None) # 計算 e 的次方
  12. tf.log(x, name=None) # 以 e 爲底,必須傳入浮點數或複數
  13. # 取符號、負、倒數、絕對值、近似、兩數中較大/小的
  14. tf.negative(x, name=None) # 取負(y = -x).
  15. tf.sign(x, name=None) # 返回 x 的符號
  16. tf.reciprocal(x, name=None) # 取倒數
  17. tf.abs(x, name=None) # 求絕對值
  18. tf.round(x, name=None) # 四捨五入
  19. tf.ceil(x, name=None) # 向上取整
  20. tf.floor(x, name=None) # 向下取整
  21. tf.rint(x, name=None) # 取最接近的整數
  22. tf.maximum(x, y, name=None) # 返回兩tensor中的最大值 (x > y ? x : y)
  23. tf.minimum(x, y, name=None) # 返回兩tensor中的最小值 (x < y ? x : y)
  24. # 三角函數和反三角函數
  25. tf.cos(x, name=None)
  26. tf.sin(x, name=None)
  27. tf.tan(x, name=None)
  28. tf.acos(x, name=None)
  29. tf.asin(x, name=None)
  30. tf.atan(x, name=None)
  31. # 其它
  32. tf.div(x, y, name=None) # python 2.7 除法, x/y-->int or x/float(y)-->float
  33. tf.truediv(x, y, name=None) # python 3 除法, x/y-->float
  34. tf.floordiv(x, y, name=None) # python 3 除法, x//y-->int
  35. tf.realdiv(x, y, name=None)
  36. tf.truncatediv(x, y, name=None)
  37. tf.floor_div(x, y, name=None)
  38. tf.truncatemod(x, y, name=None)
  39. tf.floormod(x, y, name=None)
  40. tf.cross(x, y, name=None)
  41. tf.add_n(inputs, name=None) # inputs: A list of Tensor objects, each with same shape and type
  42. tf.squared_difference(x, y, name=None)

3-1、操作 --變量初始化(在會話中執行)

init = tf.global_varaibles_initializer()

#對所有變量進行初始化;注意單詞拼寫問題,不要丟了a

3-2、操作 --賦值(assign)

tf.assign

4、會話--Session()

with tf.Session() as sess:

        sess.run(init)

        print(sess.run([y,x]))

在會話中執行多個變量時,用中括號[]將這幾個變量括起來就可一起執行。

5、placeholder,佔位符,在tensorflow中類似於函數參數,運行時必須傳入值。

tf.placeholder(dtype, shape=None, name=None)

  • dtype:數據類型。常用的是tf.float32,tf.float64等數值類型。
  • shape:數據形狀。默認是None,就是一維值,也可以是多維,比如[2,3], [None, 3]表示列是3,行不定。
  • name:名稱。
佔位符--placeholder與feed_dict一起使用,採用字典的形式餵給數據

代碼片段-1(計算3*4=12)

  1. #!/usr/bin/env python
  2. # _*_ coding: utf-8 _*_
  3. import tensorflow as tf
  4. import numpy as np
  5. input1 = tf.placeholder(tf.float32)
  6. input2 = tf.placeholder(tf.float32)
  7. output = tf.multiply(input1, input2)
  8. with tf.Session() as sess:
  9. print sess.run(output, feed_dict = {input1:[3.], input2: [4.]})



代碼片段-2(計算矩陣相乘,x*x)

  1. #!/usr/bin/env python
  2. # _*_ coding: utf-8 _*_
  3. import tensorflow as tf
  4. import numpy as np
  5. x = tf.placeholder(tf.float32, shape=(1024, 1024))
  6. y = tf.matmul(x, x)
  7. with tf.Session() as sess:
  8. # print(sess.run(y)) # ERROR: x is none now
  9. rand_array = np.random.rand(1024, 1024)
  10. print(sess.run(y, feed_dict={x: rand_array})) # Will succeed.



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章