用鸢尾花数据集来学习,并进行tensor的创建

本文通过鸢尾花数据集演示神经网络分类,并详细介绍了如何使用TensorFlow创建不同类型的张量,包括常量张量、从numpy转换、全零张量、全一张量以及正态分布和截断正态分布随机张量。
摘要由CSDN通过智能技术生成

1.数据载入

这次我用神经网络给鸢尾花分类,用python自带的鸢尾花数据集来进行

1.1代码操作

import tensorflow as tf## 安装tensorflow
w=tf.Variable(tf.constant(5,dtype=tf.float32))## 设定参数w初始值为5
lr=0.2  ## 设定学习率为0.2
epoch=40

设置好了初始参数后,进行下一步

for epoch in range(epoch):  # for epoch 定义顶层循环,表示对数据集循环epoch次,此例数据集数据仅有1个w,初始化时候constant赋值为5,循环100次迭代。
    with tf.GradientTape() as tape:  # with结构到grads框起了梯度的计算过程。
        loss = tf.square(w + 1)
    grads = tape.gradient(loss, w)  # .gradient函数告知谁对谁求导
w.assign_sub(lr * grads)  ## assign_sub 对变量做自减 即:w -= lr*grads 即 w = w - lr*grads

在入图片描述

 print("After %s epoch,w is %f,loss is %f" % (epoch, w.numpy(), loss)) ## 找出最优值

在这里插入图片描述
可以看出损失函数为36,w值为2.6时为最优值。

2.如何创建一个tensor

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

例如:创建一个一阶张量,里面有两个元素1,5,数据类型为64位整型

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

输出结果
在这里插入图片描述

2.2 将numpy数据类型转换为tensor型数据类型

tf.convert_to_tensor(数据名,dtype=数据类型(可选))
例如:将numpy格式a转换为tensor格式b

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

输出结果
在这里插入图片描述

2.3创建张量

创建全为零的张量tf.zeros(维度),创建全为1的张量tf.ones(维度),创建全为指定值的张量tf.fill(维度,指定值).
例如

a=tf.zeros([2,3])
b=tf.ones(4)
c=tf.fill([2,2],9)
print(a)
print(b)
print(c)

输出结果
在这里插入图片描述

2.4生成正态分布随机函数

生成正态分布随机函数,默认均值为0,标准差为1
tf.random.normal(维度,mean=均值,stddev=标准差)
生成截断式正态分布随机数
tf.random.truncated_normal(维度,mean=均值,stddev=标准差),如果我们希望生成的数更集中一些
则random.truncated_normal保证了生成的随机数在μ±2a之间。
例如:

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

输出结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值