更新了tensorflow2.0后,有一些地方和之前不太一样,tf.Session()的用法将不会出现在tensorflow2.x中了。取而代之的是更接近python的语法体系。
最近稍微学习了一下,做一点总结。
首先,在tensorflow中,所有数据都是在以tensor 的形式在传递和计算的。但只要是tensor,就可以通过tensor.numpy()的方法转换成array.而在tensorflow中,tensor是最基本的组成单元,它可以组成layer,而后layer可以组成model.model 正是我们解决问题的具体形式。以流图的形式进行运算,或许正是tensorflow的简单而强大的地方吧。
另外总结一些简单的语法知识,当然可以在tensorflowAPI中很方便的查到:
1、差的平方
x=[1,2,3,4,5]
y=[6,7,8,9,10]
s=tf.math.squared_difference(x,y)
print(s)
2、平均值
numbers=tf.constant([[4.,5.],[7.,3.]])
print(tf.reduce_mean(input_tensor=numbers,axis=0,keepdims=True))
这里要注意的是,tf.reduce_mean()中的reduce意味着在求取了均值后,tensor的dim减少了。因而,可以在其函数内部设置keepdims这一参数来决定结果的维数。 另外,axis=0是说按行求平均值,如果axis=1,则按tensor的列求平均值。
3、随机数
在神经网络初始化链接权重时,常常要为每一个神经赋一个随机值。
常用的有:
正态随机数:
print(tf.random.normal(shape=(3,2),mean=0,stddev=2))
这里的mean是指产生的tensor的平均值,stddev是其标准差。
均匀随机数:
print(tf.random.uniform(shape=(2,4),minval=1,maxval=10,dtype=tf.int32))
4、最大值和最小值
import tensorflow as tf
b=tf.constant([1,-7,6,8,9,54,2,3])
a=tf.argmax(b)
print(a)