IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> Tensorflow2.X 学习(二)常用函数 -> 正文阅读

[人工智能]Tensorflow2.X 学习(二)常用函数

目录

1.张量的创建——constant、zeros、ones、fill

2.张量的加、减、乘、除——add、subtract、multiply、divide

3.张量的平方、次方、开方——square

4.矩阵乘法——matmul

?5.切分第一维,构建数据集——tf.data.Dataset.from_tensor_slices

?6.计算梯度(函数求导)——tf.GradientTape

7.遍历每个元素——enumerate

8.独热编码——one_hot

9.输出符合概率分布——softmax

10.变量自更新——assign_sub

11.指定维度最大的索引值——argmax


1.张量的创建——constant、zeros、ones、fill

  • ????????常量张量:tf.constant(矩阵)
  • ????????全1张量:tf.ones(矩阵格式)
  • ????????填充任意值张量:tf.fill(矩阵格式,填入的内容)
  • ????????全0张量:tf.zeros(矩阵格式)
a = tf.constant([[1, 2],
                [3, 4]])

? ? ? ? 如上,创建了一个具有2个维度,每个维度2个元素的张量。

2.张量的加、减、乘、除——add、subtract、multiply、divide

  • ? ? ? ? 加法:tf.add(张量1,张量2)
  • ? ? ? ? 减法:tf.subtract(张量1,张量2)
  • ? ? ? ? 乘法:tf.multiply(张量1,张量2)
  • ? ? ? ? 除法:tf.divide(张量1,张量2)
a = tf.ones([2, 3])
b = tf.fill([2, 3], 4.0)        # 这里必须赋值一个浮点数。
print('a   ', a, '\n')
print('b   ', b, '\n')
print('加法', tf.add(a, b), '\n')             # a + b
print('减法', tf.subtract(a, b), '\n')        # a - b
print('乘法', tf.multiply(a, b), '\n')        # a * b
print('除法', tf.divide(a, b), '\n')          # a / b

3.张量的平方、次方、开方——square、pow、sqrt

  • ????????平方:tf.square(张量名)? ? ? ? ???——所有元素直接平方
  • ? ? ? ? 次方:tf.pow(张量名, 次方数)? ? ? ? ——所有元素直接作幂次方
  • ? ? ? ? 开方:tf.sqrt(张量名)? ? ? ? ? ? ? ? ? ? ?——所有元素直接开方
# 张量的平方、次方、开方
a = tf.fill([2, 3], 3.)
print('张量a:\n ', a, '\n')
print('a平方:\n ', tf.square(a), '\n')
print('a次方:\n ', tf.pow(a, 3), '\n')
print('a开方:\n ', tf.sqrt(a), '\n')

4.矩阵乘法——matmul

  • ? ? ? ? 矩阵乘法:matmul(矩阵1,矩阵2)——n行m列? 与? m行k列才能相乘。
a = tf.ones([2, 3])
b = tf.fill([3, 2], 2.)
print(a)
print(b)
print(tf.matmul(a, b))

?5.切分第一维,构建数据集——tf.data.Dataset.from_tensor_slices

  • ? ? ? ? 切分传入张量的第一维度,生成输入特征/标签对,构建数据集。
  • ? ? ? ? 传入5行2列的特征(第一维5个元素)
  • ? ? ? ? 传入5行1列的标签(第一维5个元素)
  • ? ? ? ? 假定,2个特征对应1个标签,则会创造一个shape为((2,),(1,))的数据形式,即每3个特征对应一个标签
# data = tf.data.Dataset.from_tensor_slices( (输入特征, 标签) )
# numpy 和 Tensor格式都可以用该语句读入数据。
features = tf.constant([12, 23, 10, 17])        # 特征
labels = tf.constant([0, 1, 1, 0])              # 标签
dataset = tf.data.Dataset.from_tensor_slices((features, labels))    # 特征,标签配对。
print(dataset)
for elements in dataset:
    print(elements)

?6.计算梯度(函数求导)——tf.GradientTape

  • ????????with结构记录计算过程,gradient求出张量的梯度。
  • ????????结构表示运算表达式,gradient表示求导(因变量,自变量)
with tf.GradientTape() as tape:
    w = tf.Variable(tf.constant(3.0))    # 指定张量x为可训练变量
    loss = tf.pow(w, 2)                  # loss = w**2
grad = tape.gradient(loss, w)            # loss对w进行求导。
print(grad)                              # 输出求导结果

7.遍历每个元素——enumerate

  • ????????该函数可以遍历每个元素(如列表、元组、或字符串),组合为索引 元素,常在for循环中使用。
  • ????????enumerate(列表名)
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
    print(i, element)

8.独热编码——one_hot

  • ????????独热编码(one-hot encoding):在分类问题中,常用独热编码做标签。
  • ????????标记类别:1表示是,0表示非。
  • ????????tf.one_hot(待转换数据,depth=几分类)
classse = 3
labels = tf.constant([1, 0, 2])                 # 输入元素最小值为0,最大值为2
output = tf.one_hot(labels, depth=classse)      # 输出当前的标签分类值。
print(output)

9.输出符合概率分布——softmax

  • ????????常用函数 tf.nn.softmax(x)使得输出结果符合概率分布。
  • ????????可以使n分类的n个输出(y0,y1 …… ,yn-1)符合概率分布。
y = tf.constant([1.01, 2.01, -0.66])
y_pro = tf.nn.softmax(y)
print("经过softmax函数之后,y_por是:", y_pro)

10.变量自更新——assign_sub

  • ? ? ? ? 变量名.tf.assign_sub(自减步长)
x = tf.constant(4)      # 一个张良x,内容为0维数据,1个元素,4.
w = tf.Variable(x)      # 张量x变为可训练(可以自更新)
w.assign_sub(1)         # w -=1 即 w = w-1。括号里是要自减的内容。
print(w)

11.指定维度最大的索引值——argmax

  • ? ? ? ? tf.argmax(数组,axis = 0)? ? ? ? ?# 按列来找
  • ? ? ? ? tf.argmax(数组,axis = 1)? ? ? ? ?# 按行来找
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))  # 按行来找。

12.转换矩阵的数据类型

????????转换x的数据类型,后面矩阵相乘时会因数据类型不一致报错

? ? ? ? 目标矩阵 = tf.cast(原始矩阵, 目标类型)

x_train = tf.cast(x_train, tf.float32)
x_test = tf.cast(x_test, tf.float32)

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-14 14:01:52  更:2021-08-14 14:04:36 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 20:28:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码