tensorflow2的常用函数记录与实例

刚学tensorflow框架,英文api文档找起来太麻烦,故学习之初先记录一些

创建一个tensor

1.创建常量

tf.constant(张量内容,dtype=数据类型(可选))

如:a = tf.constant([1,5],dtype = tf.int64)

2.将其他类型的数据转换成tensor

tf.convert_to_tensor(数据名,dtype=数据类型(可选))

3.创建全为0的张量

tf.zero(维度)

4.创建全为1的张量

tf.ones(维度)

5.创建全为指定值的张量

tf.fill(维度,指定值)

6.生成正态分布的随机数,默认均值为0,标准差为1

tf.random.normal(维度,mean = 均值,stddev = 标准差)

如:

import tensorflow as tf


a  = tf.random.normal([2,2],mean = 0.5,stddev= 0.1)
print(a)

结果:

7.生成截断式正态分布的随机数——让生成的随机数更集中一些

tf.random.truncated_normal(维度,mean = 均值,stddev = 标准差)

import tensorflow as tf

a  = tf.random.truncated_normal([2,2],mean = 0.5,stddev= 0.1)
print(a)

结果:

 9.生成均匀分布随机数 [minval,maxval)    (左闭右开)

tf.random.uniform(维度,minval = 最小值, maxval = 最大值)

10.强制tensor转换为改数据类型

tf.cast(张量名,dtype = 数据类型)

11.计算张量维度上元素的最小值

tf.reduce_min(张量名)

12.计算张量维度上元素的最大值

tf.reduce_max(张量名)

13.计算张量沿着指定维度的平均值

tf.reduce_mean(张量名,axis=)

14.计算张量沿着指定维度的和

tf.reduce_sum(张量名,axis= )

15.将变量标记为可训练

tf.Variable(),被标记的变量会在反向传播中记录梯度数据。神经网络中常用该函数标记待训练参数,由此可以根据梯度下降更新参数

如:w = tf.Variable(tf.random.normal([2,2],mean=0,stdddev = 1))

16.四则运算(张量对应元素,所以张量结构必须相同)

加,减,乘,除:tf.add(a,b), tf.subtract(a,b), tf.multiply(a,b), tf.divide(a,b)

平方,开n次方,开方:tf.square(张量名),tf.pow(张量名,n次方),tf.sqrt(张量名)

矩阵乘法:tf.matmul

17.切分传入张量的第一维度,生成输入特征/标签对,构建数据集

data = tf.data.Dataset.from_tensor_slices((输入特征,标签))

(numpy和tensor格式都可)

如:

import tensorflow as tf

features = tf.constant([1, 21, 31, 41],dtype= 'float64')
labels = tf.constant([1, 2, 3, 4],dtype= 'int32')
dataset = tf.data.Dataset.from_tensors((features,labels))
print(dataset)
for element in dataset:
    print(element)

结果:

 18.求导计算

# with结构记录计算过程,gradient求出张量的梯度

with tf.GradientTape() as tape :

若干计算过程

grad = tape.gradient(函数,求导对象)

如:

import tensorflow as tf

# 记得一定要加括号!
with tf.GradientTape() as tape :
    W = tf.Variable(tf.constant([2,3,4],dtype='float64'))
    loss = tf.pow(W,2)
grad = tape.gradient(loss,W)
print(grad)

结果:

19.将数据转换为独热码数据输出

tf.one_hot(带转换数据,depth = 类别个数)

如:

import tensorflow as tf

classes = 4
labels = tf.constant([1, 2, 3])
outputs = tf.one_hot(labels,depth=classes)
print(outputs)

结果:

20.tf.nn.softmax,让输出符合概率分布

如:

import tensorflow as tf

y = tf.constant([-3, 2, -7],dtype='float32')
y_p = tf.nn.softmax(y)
print(y_p)

结果:

21.自更新操作

赋值操作,更新参数的值并返回

调用assign_sub前,先用tf.Variable 定义变量为可训练(可自训练)

w.assign_sub(w要自减的内容)

如1:

import tensorflow as tf

w = tf.Variable(tf.constant([2, 3, 4]))
w.assign_sub([1,-1,2]) # 这里只能int32
print(w)

 结果:

如2:

import tensorflow as tf

w = tf.Variable(tf.constant(4))
w.assign_sub(1) # 这里只能int32
print(w)

结果:

 

w.assign_add(w要自加的内容)

如:

import tensorflow as tf

w = tf.Variable(tf.constant([2, 3, 4]))
w.assign_add([1,-1,2]) # 这里只能int32
print(w)

 结果:

 22.返回张量沿指定维度最大值的索引

tf.argmax(张量名,axis=)

如:

import tensorflow as tf

matrix = tf.constant([[1, 2, 3],
                      [3, 5, 4],
                      [8, 1, 7]])
print(matrix)
print(tf.argmax(matrix, axis=0))
print(tf.argmax(matrix, axis=1))

结果:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TensorFlow常用函数包括基本函数和维度变换函数。 基本函数包括: 1. `tf.random_normal()` 用于生成符合正态分布的随机数。 2. `tf.Variable()` 用于定义可训练的变量。 3. `tf.convert_to_tensor()` 用于将Python对象转换为Tensor对象。 4. `tf.placeholder()` 用于定义占位符,可以在运行时传入具体的值。 5. `tf.nn.conv2d()` 用于进行二维卷积操作。 6. `tf.nn.relu()` 用于实现ReLU激活函数。 7. `tf.nn.maxpool()` 用于进行最大池化操作。 维度变换函数包括: 1. `Reshape` 用于改变Tensor的形状。 2. `tf.transpose()` 用于交换Tensor的维度顺序。 3. `tf.expand_dims()` 用于在指定位置增加维度。 4. `tf.squeeze()` 用于去除Tensor中维度为1的维度。 以上是TensorFlow常用的一些函数,可以帮助我们进行数据的处理和模型的构建。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [tensorflow 常用函数](https://blog.csdn.net/hanfei410/article/details/106140878)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [tensorflow 一些常用函数](https://blog.csdn.net/weixin_43915860/article/details/106288956)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值