tensorflow学习笔记(1):常用函数

创建一个张量tensor(张量是常量)

tf.constant(内容,dtype=数据类型)
数据类型的使用也是以tf开头,一般来说使用tensorflow的所有函数和数据结构都需要有tf

a = tf.constant([1,5],dtype=tf.int64)
print(a)
print(a.shape)
print(a.dtype)

类型转换

tf.cast(张量名,dtype=数据类型)
tf.reduce_min(张量名)#计算张量中元素的最大值
tf.reduce_max(张量名) #计算张量中元素的最小值
tf.reduce_mean() #求均值
tf.reduce_sum() #求和
axis=0是行,axis=1是列
axis调整函数执行的维度,不指定axis则全部元素参与运算
axis可以指定操作的方向,一般作为函数的参数

将numpy格式的数据类型转换为tensorflow的数据类型

tf.convert_to_tensor(np数组,dtype=数据类型)

import numpy as np
a = np.arange(0,5)
b = tf.convert_to_tensor(a,dtype=tf.int64)

使用tf创建数组

a = tf.zeros([2,3])# 创建一个2行3类的二维张量
b = tf.fill([2,2],100)
c = tf.random.uniform([2,2],0,1)# 利用random里的各种函数实现各种随机变量矩阵的生成

创建变量

tf.Variable()# 将变量标记为可训练的,被标记的变量会在反向传播中记录梯度信息,在神经网络中,常用该函数标记待训练的参数

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

基本运算

# tf.add(a,b)  tf.subtract(a,b)  tf.multiply(a,b)  tf.divide(a,b)  tf.square  tf.pow  tf.sqrt  tf.matmul
# + - * / 平方 次方 开方 矩阵乘

注意[[1,1,1]]是个二维的张量

将数据集的标签和特征进行配对

tf.data.Dataset.from_tensor_slices(feature,label)#将数据集的标签和特征进行配对

函数求导

with tf.GradientTape() as tape:
************
grad = tape.gradient(函数,对谁求导)

with结构记录计算过程:
基本思想是:with所求值的对象必须有一个构建方法,一个析构方法。
紧跟with**后面的语句被求值后,返回对象的构建方法被调用,这个方法的返回值将被赋值给as后面的变量。当with后面的代码块全部被执行完之后,将调用前面返回对象的析构方法。

with tf.GradientTape() as tape:
    w = tf.Variable(tf.constant(3.0,dtype=tf.int64))
    loss = tf.pow(w,2)
grad = tape.gradient(loss,w)
print(grad)

枚举

for i,element in enumerate(s):
    print(i,element)

独热编码,在分类问题中,常用来做标签

tf.one_hot(带转换数据,depth=分几类)

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

softmax,使得输出满足相加是1 的概率分布

tf.nn.softmax(x)

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

w.assign_sub(1)

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

tf.argmax(张量名,axis = ***)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值