自己開發了一個股票智能分析軟體,功能很強大,需要的點選下面的連結擷取:
https://www.cnblogs.com/bclshuai/p/11380657.html
1.1 常量constant
1.1.1 常量的聲明
值不能改變的張量。建立通過constant來實作, constant()是一個函數,提供在tensorflow中定義常量(不可更改的張量)的方法。
tf.constant(
value,//值清單,多個值用[]包括,逗号分開,按照shape指定的形狀去生成,清單中的值數量等于shape(例如2*3)定義的大小,否則tensorflow2.3會報錯。
dtype=None,.//定義常量的資料類型
shape=None,//如果要設定行列,可以用[2,3]設定,表示2行3列
name='Const',//定義變量的名字
verify_shape=False// verify_shape預設為False,如果修改為True的話表示檢查value的形狀與shape是否相符,如果不符會報錯。
)
1.1.2 常量的類型
(1)标量常量
t_1 = tf.constant(4)
(2)向量常量1行3列
t_2 = tf.constant([4,3,2])
(3)[M,N] 的零元素矩陣
M行N列的零元素矩陣,資料類型(dtype)可以是 int32、float32 等:
tf.zeros([M,N],tf.dtype);
zero_t = tf.zeros([2,3],tf.int32) # Results in an 2x3 array of zeros:[[0 0 0],[0 0 0]]
(4)[M,N]元素均為 1 的矩陣
ones_t = tf.ones([2,3],tf.int32) # Results in an 2x3 array of ones:[[1 1 1],[1 1 1]]
(5)等差排布的序列
tf.linspace(start,stop,num)#起始值和總的數量
相應的值為 (stop-start)/(num-1)。例如:
range_t = tf.linspace(2.0,5.0,5)
#We get:[2. 2.75 3.5 4.25 5.]
從開始(預設值=0)生成一個數字序列,增量為 delta(預設值=1),直到終值(但不包括終值):
tf.range(start,limit,delta)//起始值和增量
下面給出執行個體:
range_t = tf.range(10)
#Result:[0 1 2 3 4 5 6 7 8 9]
(6)形狀為 [M,N] 的正态分布随機數組
t_random=tf.random_normal([M,N],mean=2.0,stdev=4,seed=12)
其中random_normal是随機數的類型,還有另外兩種:截尾正太分布随機數組truncated_normal, M和N表示M行N列,mean表示随機數組中值的平均值,stddev表示随機值的标準差,seed表示随機種子。
(7)限定範圍的随機正太分布數組
[minval(default=0),maxval] 範圍内建立形狀為 [M,N] 的給定伽馬分布随機數組
t_random=tf.random_uniform([2,3],minval=1,maxval=4,seed=12)。
(8)從随機數組中裁剪出指定大小的數組,行列都要小于等于原矩陣
tf.random_crop(t_random,[2,2],seed=12)
1.1.3 常量的使用執行個體
import tensorflow as tf
# int型
a = tf.constant(1)
print(a)
# float型
b = tf.constant(1.)
print(b)
# double型
c = tf.constant(2.,dtype=tf.float64)
print(c)
# bool型
d = tf.constant([True,False])
print(d)
# string型
e = tf.constant('hello world')
print(e)
#向量
f=tf.constant([1,2,3])
print(f)
#矩陣
g=tf.constant([1,2,3,4,5,6],shape=[2,3])
print(g)
h=tf.constant(1,shape=[3,2])
print(h)
i=tf.compat.v1.constant([[1,2],[4,5]],shape=[2,2],verify_shape=False)
print(i)
#元素值都為0的矩陣zeros([M,N],tf.dtype)
zero_t = tf.zeros([2,3],tf.int32)
print(zero_t)
"""輸出
tf.Tensor(
[[0 0 0]
[0 0 0]], shape=(2, 3), dtype=int32)
"""
#元素都為1的矩陣
one_t=tf.ones([3,2],tf.int32)
print(one_t)
"""輸出
tf.Tensor(
[[1 1]
[1 1]
[1 1]], shape=(3, 2), dtype=int32)
"""
#等差分布的向量
range_t =tf.linspace(2.0, 5.0, 5)
print(range_t)#輸出tf.Tensor([2. 2.75 3.5 4.25 5. ], shape=(5,), dtype=float32)
#形狀為 [M,N] 的正态分布随機數組
t_randomnormal=tf.compat.v1.random_normal([4,4],mean=2.0,stddev=4,seed=12)
print(t_randomnormal)
"""輸出
[[ 0.25347447 5.37991 1.9527606 -1.5376031 ]
[ 1.2588985 2.8478067 11.545206 -1.0216885 ]
[ 3.6549058 6.6507907 4.42358 1.4614596 ]
[ 1.4433938 1.7380679 -1.6191797 2.0041263 ]], shape=(4, 4), dtype=float32)
"""
#限定範圍的随機正太分布數組
t_randomuniform=tf.compat.v1.random_uniform([2,2],minval=1,maxval=4,seed=12)
print(t_randomuniform)
"""輸出
tf.Tensor(
[[2.9084575 3.7722745]
[3.028832 2.5063753]], shape=(2, 2), dtype=float32)
"""
#從大的數組中裁剪出出小的矩陣,行列都要小于等于大的矩陣
t_randomcrop=tf.compat.v1.random_crop(t_randomnormal,[2,3],seed=12)
print(t_randomcrop)
"""輸出
tf.Tensor(
[[ 2.8478067 11.545206 -1.0216885]
[ 6.6507907 4.42358 1.4614596]], shape=(2, 3), dtype=float32)
"""
1.1.4 算術運算符運算
對于除法多說兩句,Tensor有兩種除法,一種是”/”,另一種是”//”。”/”是浮點除法,對應的是tf.truediv,而”//”是計算整除,對應tf.floordiv。
d01 = tf.constant(1)
d02 = tf.constant(2)
d_add = d01 + d02
print(d_add)#Tensor("add:0", shape=(), dtype=int32)
d_sub = d01 - d02
print(d_sub)#Tensor("sub:0", shape=(), dtype=int32)
d_mul = d01 * d02
print(d_mul)#Tensor("mul:0", shape=(), dtype=int32)
d_fdiv = d01 / d02#浮點數運算
print(d_fdiv)#Tensor("truediv:0", shape=(), dtype=float64)
d_idiv=d01//d02#整型運算
print(d_idiv)#Tensor("floordiv:0", shape=(), dtype=int32)
d_mod = d01 % d02
print(d_mod)#Tensor("mod:0", shape=(), dtype=int32)
d_minus = -d01
print(d_minus)#Tensor("Neg:0", shape=(), dtype=int32)
1.1.5 比較運算符運算
對于>, <, >=, <=等關系,都會生成一個需要Session來運算的Tensor對象。隻有==是例外,它會立即傳回這兩個Tensor是否是同一對象的結果
d11 = d01 > d02
d12 = d01 < d02
d13 = d01 == d02
d14 = d01 >= d02
d15 = d01 <= d02
print(d11)#Tensor("Greater:0", shape=(), dtype=bool)
print(d12)#Tensor("Less:0", shape=(), dtype=bool)
print(d13)#False
print(d14)#Tensor("GreaterEqual:0", shape=(), dtype=bool)
print(d15)#Tensor("LessEqual:0", shape=(), dtype=bool)
1.1.6 數學運算
整形,一定要先轉換成浮點型才能進行sqrt,sin等數學函數計算。
d31 = tf.constant(100, dtype=tf.float64)
d32 = tf.sqrt(d31)
print(ss.run(d32))#10.0