tf.cast(张量名,detype=数据类型)
:将一种类型的tensor转化为另一种类型的tensor
tf.reduce_min(张量名)#返回最小值
tf.reduce_max(张量名)#返回最大值
tf.reduce_mean(张量名)#返回均值
tf.argmax(张量名,axis=操作轴)
:返回张量沿着指定维度的最大值的索引号(下标)
详情见代码:
import tensorflow as tf
d = tf.constant([[1,2,3],
[3,4,5],
[5,5,-10]])
print("axis==0(列操作): ",tf.reduce_sum(d,axis=0))
print("axis==1(行操作): ",tf.reduce_sum(d,axis=1))
tf.Variable()
将变量标记为“可训练”的张量,我们在神经网络中常用这个函数标记代训练的参数,因为被它标记了的变量会在反向传播中标记自己的梯度信息
eg:
import tensorflow as tf
w = tf.Variable( tf.random.normal([2,3],mean=1,stddev=0.1))
tf.cast(w,dtype=tf.float64)#类型强制转换
print(w)
tf.add(a,b)
,减tf.subtract(a,b)
乘tf.multiply(a,b)
除tf.divide(a,b)
tf.square(a)
次方tf.pow(a,n)
开方tf.sqrt(a)
tf.matmul
(matrix multiplication的缩写)#w自减1
w = tf.Variable(3.0)
w.assign_sub(1)
ps:只有维度相同的张量才可以进行四则运算
因为我们在深度学习时,是把特征和标签一起投入网络的,所以我们需要把特征和标签配对的函数(tensor和numpy都适用)
tf.data.Dataset.from_tensor_slices((输入特征,标签))
eg:
import tensorflow as tf
feature = tf.constant([11,22,33,44,55])
lable = tf.constant([1,1,2,3,2])
#你可以将它理解为C++里的pair
dataset = tf.data.Dataset.from_tensor_slices((feature,lable))
#将feature和lable配对
for element in dataset:
print(element)
tf.GradientTape()
一般书写方式:
with tf.GradientTape() as tape:
计算过程
计算过程
grad = tape.gradient()
import tensorflow as tf
with tf.GradientTape() as tape:
w = tf.Variable(tf.constant(3.0,dtype=tf.float32))
loss = tf.pow(w,2)#损失函数
grad = tape.gradient(loss,w)#对loss函数中的w求偏导
print(grad)
enumerate
:enumerate是python的内建函数,它可以遍历每个元素(列表,元组,字符串),组合为:索引+元素,常在for循环中使用:
eg:
words = ('I','Love','tensorflow')
for i,element in enumerate(words):
print(i,element)
tf.one_hot(代转换数据,depth=有几个分类)
:函数值为1表示属于那一类
eg:
import tensorflow as tf
lable = tf.constant([1,0,2]);
pair = tf.one_hot(lable,depth=3);
print(pair)
实际问题中,当我们在进行神经网路的学习时,会输出多个不同的输出值,当输出值越大时,发生这一时间的概率就会越大。 我们怎么把不同的输出值转化为一连串的概率值,使得这些概率和为1呢。
这里我们就会运用函数:
S o f t m a x ( y i ) = e y i ∑ i = 0 n e y i Softmax(y_i)= \frac { e^ {y_i} }{ \sum_{i=0}^ne^{y_i} } Softmax(yi)=∑i=0neyieyi
而在tensorflow的tf.nn.softmax(x)
函数就是帮你计算上面这一个式子的
eg:
import tensorflow as tf
w = tf.constant([1.02,2.0,-0.5],)
pro = tf.nn.softmax(w)
print(pro)