从0开始的深度学习——【tensorflow】一些常用的基本函数

类型转换:

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)

常用的计算函数

  1. 加:tf.add(a,b),减tf.subtract(a,b)tf.multiply(a,b)tf.divide(a,b)
  2. 平方tf.square(a)次方tf.pow(a,n)开方tf.sqrt(a)
  3. 矩阵乘法tf.matmul(matrix multiplication的缩写)
  4. 自减(只能操作tf.Variable()类型的变量)
#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)

在这里插入图片描述

你可能感兴趣的:(深度学习,tensorflow)