1.切分传入张量的第一维度,生成输入特征与标签对,构建数据集
import tensorflow as tf
import numpy as np
# 切分传入张量的第一维度,生成输入特征与标签对,构建数据集
features = tf.constant([12, 23, 10, 17])
labels = tf.constant([0, 1, 1, 0])
dataset = tf.data.Dataset.from_tensor_slices((features, labels)) # 输入特征与标签配对
for element in dataset:
print(element)
2.求梯度
with tf.GradientTape() as tape:
x = tf.Variable(tf.constant(3.0)) # tf.Variable(初始值)标记为可训练的参数
y = tf.pow(x, 2)
grad = tape.gradient(y, x)
print(grad)
3.枚举 (enumerate)
enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print(i, element)
4.独热编码 tf.one_hot(待转换数据, depth=几类)
其中1表示是,0表示非。
# 独热编码
classes = 3
labels = tf.constant([1, 0, 2]) # 输入的元素值最小为0,最大为2
output = tf.one_hot(labels, depth=classes)
print("result of labels1:", output)
print("\n")
5.多分类tf.nn.softmax(数据)使输出符合概率分布
# 多分类
y = tf.constant([1.01, 2.01, -0.66])
y_pro = tf.nn.softmax(y)
print("After softmax, y_pro is:", y_pro) # y_pro 符合概率分布
print("The sum of y_pro:", tf.reduce_sum(y_pro)) # 通过softmax后,所有概率加起来和为1
6.参数的自更新
x = tf.Variable(4)
x.assign_sub(1)
print("x:", x) # 4-1=3
7.返回指定维度的最大值的索引
# 返回指定维度的最大值的索引
test = np.array([[1, 2, 3], [2, 3, 4], [5, 4, 3], [8, 7, 2]])
print("test:\n", test)
print("每一列的最大值的索引:", tf.argmax(test, axis=0)) # 返回每一列最大值的索引号
print("每一行的最大值的索引", tf.argmax(test, axis=1)) # 返回每一行最大值的索引号