在使用常量、變量等之前必須先導入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、常用操作符和基本數學函數
- # 算術操作符:+ - * / %
- tf.add(x, y, name=None) # 加法(支持 broadcasting)
- tf.subtract(x, y, name=None) # 減法
- tf.multiply(x, y, name=None) # 乘法
- tf.divide(x, y, name=None) # 浮點除法, 返回浮點數(python3 除法)
- tf.mod(x, y, name=None) # 取餘
- # 冪指對數操作符:^ ^2 ^0.5 e^ ln
- tf.pow(x, y, name=None) # 冪次方
- tf.square(x, name=None) # 平方
- tf.sqrt(x, name=None) # 開根號,必須傳入浮點數或複數
- tf.exp(x, name=None) # 計算 e 的次方
- tf.log(x, name=None) # 以 e 爲底,必須傳入浮點數或複數
- # 取符號、負、倒數、絕對值、近似、兩數中較大/小的
- tf.negative(x, name=None) # 取負(y = -x).
- tf.sign(x, name=None) # 返回 x 的符號
- tf.reciprocal(x, name=None) # 取倒數
- tf.abs(x, name=None) # 求絕對值
- tf.round(x, name=None) # 四捨五入
- tf.ceil(x, name=None) # 向上取整
- tf.floor(x, name=None) # 向下取整
- tf.rint(x, name=None) # 取最接近的整數
- tf.maximum(x, y, name=None) # 返回兩tensor中的最大值 (x > y ? x : y)
- tf.minimum(x, y, name=None) # 返回兩tensor中的最小值 (x < y ? x : y)
- # 三角函數和反三角函數
- tf.cos(x, name=None)
- tf.sin(x, name=None)
- tf.tan(x, name=None)
- tf.acos(x, name=None)
- tf.asin(x, name=None)
- tf.atan(x, name=None)
- # 其它
- tf.div(x, y, name=None) # python 2.7 除法, x/y-->int or x/float(y)-->float
- tf.truediv(x, y, name=None) # python 3 除法, x/y-->float
- tf.floordiv(x, y, name=None) # python 3 除法, x//y-->int
- tf.realdiv(x, y, name=None)
- tf.truncatediv(x, y, name=None)
- tf.floor_div(x, y, name=None)
- tf.truncatemod(x, y, name=None)
- tf.floormod(x, y, name=None)
- tf.cross(x, y, name=None)
- tf.add_n(inputs, name=None) # inputs: A list of Tensor objects, each with same shape and type
- 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中類似於函數參數,運行時必須傳入值。
- dtype:數據類型。常用的是tf.float32,tf.float64等數值類型。
- shape:數據形狀。默認是None,就是一維值,也可以是多維,比如[2,3], [None, 3]表示列是3,行不定。
- name:名稱。
代碼片段-1(計算3*4=12)
- #!/usr/bin/env python
- # _*_ coding: utf-8 _*_
- import tensorflow as tf
- import numpy as np
- input1 = tf.placeholder(tf.float32)
- input2 = tf.placeholder(tf.float32)
- output = tf.multiply(input1, input2)
- with tf.Session() as sess:
- print sess.run(output, feed_dict = {input1:[3.], input2: [4.]})
代碼片段-2(計算矩陣相乘,x*x)
- #!/usr/bin/env python
- # _*_ coding: utf-8 _*_
- import tensorflow as tf
- import numpy as np
- x = tf.placeholder(tf.float32, shape=(1024, 1024))
- y = tf.matmul(x, x)
- with tf.Session() as sess:
- # print(sess.run(y)) # ERROR: x is none now
- rand_array = np.random.rand(1024, 1024)
- print(sess.run(y, feed_dict={x: rand_array})) # Will succeed.