tensorflow中的常用函数(1)

今天学习了tensorflow的一些的常用函数,如下:
IDE:Pycharm
tensorflow版本:2.1.0
注意:tensoflow版本不一样可能导致输出结果不一致

# import tensorflow as tf
# x=tf.Variable(initial_value=3.0)
# with tf.GradientTape(persistent=True) as g:
#     y=x*x
# dy_dx=g.gradient(y,x)
# print(dy_dx)
# # dy_dx=g.gradient(y,x)
# # print(dy_dx)
#tf.constant(张量内容,dtype=数据类型(可选))
#将numpy的数据类型转换为Tensor数据类型--tf.convert_to_tensor(数据名,dtype=数据类型(可选))

# import tensorflow as tf
# a=tf.constant([1,5],dtype=tf.int64)
# print(a)
# print(a.dtype)
# print(a.shape)
# import tensorflow as tf
# import numpy as np
# a=np.arange(0,5)
# b=tf.convert_to_tensor(a,dtype=tf.int64)
# c=tf.zeros([2,3])#tf.zores(维度)创建全为0的张量
# d=tf.ones(6)#tf.ones(维度)创建全为1的张量维度里可以是列表,表示几行几列....
# e=tf.fill([4,5],10)#tf.fill(维度,指定值)创建全为指定值的张量
# print(a)
# print(b)
# print(c)
# print(d)
# print(e)
#创建一个Tensor
#生成正态分布的随机数,默认均值为0,标准差为1  tf.random.normal(维度,mean=均值,stddev=标准差)
#生成截断式正态分布的随机数tf.random.truncated_normal(维度,mean=均值,stddev=标准差)
#在tf.truncated_normal中如果随机数生成的取值在(u-2σ,u+2σ)之外,则重新进行生成,保证了生成值在均值附近
#u:均差 σ:标准差
#生成均匀分布随机数[minval,maxval] tf.random.uniform(维度,最小值,最大值)
#强制tensor转换为该数据类型 tf.cast(张量名,dtype=数据类型)
#计算张量维度上的最小值 tf.reduce_min(张量名)
#计算张量维度上元素的最大值 tf.reduce_max(张量名)
#在一个二维张量或者数组中,可以通过调整axis等于0或1控制执行维度
#axis=0代表跨行(经度,down),而axis=1代表跨列(维度,across)
#如果不指定axis,则所有元素参与计算
#tf.Variable()将变量标记为‘可训练’,被标记的变量会在反向传播中记录梯度信息。神经网络训练中,常用该函数标记待训练参数
#常用函数 tf.Variabl(初始值)   w=tf.Variable(tf.random.normal([2,2],mean=0,stddev=1))
#tensorflow 中的数学运算对应的四则运算:tf.add(张量相加),tf.substract(张量相减),tf.multiply(张量相乘),tf.divide(张量相除)
#只有维度相同的张量才可以做四则运算
#平方、次方与开放:tf.square,tf.pow,tf.sqrt
#矩阵乘:tf.matmul
"""切入传入张量的第一维度,生成输入特征/标签对,
构建数据集data=tf.data.Dataset.from_tensor_slices,(Numpy和Tensor格式都可用该语句读入数据)"""
import tensorflow as tf
# d=tf.random.normal([2,2],mean=0.5,stddev=1)
# print(d)
# e=tf.random.truncated_normal([2,2],mean=0.5,stddev=1)
# print(e)
# f=tf.random.uniform([2,3],minval=0,maxval=1)
# print(f)
# x1=tf.constant([1,2,3],dtype=tf.float64)
# print(x1)
# x2=tf.cast(x1,tf.int32)
# print(x2)
# print(tf.reduce_min(x2),tf.reduce_max(x2))
# x=tf.constant([[1,2,3],[2,2,3]])
# print(x)
# print(tf.reduce_mean(x))
# print(tf.reduce_sum(x,axis=1))
# a=tf.ones([1,3])
# b=tf.fill([1,3],3.)
# print(a)
# print(b)
# print(tf.add(a,b))
# print(tf.subtract(a,b))
# print(tf.multiply(a,b))
# print(tf.divide(b,a))
# a=tf.fill([1,2],3.)
# print(a)
# print(tf.pow(a,3))
# print(tf.square(a))
# print(tf.sqrt(a))
# a=tf.ones([3,2])
# b=tf.fill([2,3],3.)
# print(tf.matmul(a,b))
features=tf.constant([12,23,10,17])
labels=tf.constant([0,1,2,3])
dataset=tf.data.Dataset.from_tensor_slices((features,labels))
print(dataset)
for element in dataset:
    print(element)
import tensorflow as tf
import numpy as np
# with tf.GradientTape() as tape:
#     w=tf.Variable(tf.constant(3.0))
#     loss=tf.pow(w,2)
# grad=tape.gradient(loss,w)
# print(grad)
#enumerate(枚举)是python中的内建函数,它可以遍历每个元素(如列表、元组或字符串)
# 组合为:  索引  元素,常在for循环内使用
seq=['one','two','three']
for i,element in enumerate(seq):
    print(i,element)
#独热编码(one-hot encoding):在分类问题中,常用独热码做标签  标记类别:1表示是,0表示非
#tf.one_hot(带转换数据,depth=几分类)
classes=3
labels=tf.constant([1,0,2])#
output=tf.one_hot(labels,depth=classes)
print(output)
#tf.nn.softmax函数用于分类过程中,它将多个神经元输出,映射到(0,1)区间内
#soft函数可以使n分类的n个输出(y0,y1,.....,yn-1)符合概率分布
t=tf.constant([1.01,2.01,-0.66])
y_pro=tf.nn.softmax(t)
print('After softamx,y_pro is',y_pro)
#assign_sub:赋值操作,更新参数并返回。
#调用assign_sub前,先用tf.Variable定义变量w为可训练(只有定义为Variabl类型才是可更新的)
w=tf.Variable(4)
w.assign_sub(1)
print(w)
#tf.argmax返回张量沿指定维度最大值的索引tf.ardmax(张量名,axis=操作轴)
test=np.array([[1,2,3],[2,3,4],[5,4,3],[8,7,2]])
print(test)
print(tf.argmax(test,axis=0))
print(tf.argmax(test,axis=1))



猜你喜欢

转载自blog.csdn.net/weixin_45187794/article/details/107980501