鸢尾花分类

这篇博客介绍了如何利用sklearn加载鸢尾花数据集,并使用TensorFlow构建简单的序列模型进行分类。通过训练,模型采用ReLU激活函数和softmax输出层,使用sparse_categorical_crossentropy作为损失函数。尽管没有进行训练集和测试集划分,但展示了如何进行预测并获取预测结果的最大索引。
摘要由CSDN通过智能技术生成

接触了前面的序列模型,相信只要得到了数据集,然后利用tensorflow的序列模型来建立神经网络就可以很容易解决这个问题,那么,先来获取到数据集。

数据集

sklearn中直接使用,即:

from sklearn.datasets import load_iris
x_data = load_iris().data  # 特征,【花萼长度,花萼宽度,花瓣长度,花瓣宽度】
y_data = load_iris().target # 分类

不妨简单看下特征数据和分类数据的形状:
在这里插入图片描述

训练

import tensorflow as tf
model = tf.keras.Sequential()
model.add(tf.keras.layers.Dense(4, input_shape=(4,), activation='relu'))
model.add(tf.keras.layers.Dense(3, input_shape=(4,), activation='softmax'))
model.compile(
    optimizer="adam", 
    loss="sparse_categorical_crossentropy",  # 分类的结果是数字编码的结果,用该交叉熵
    metrics=['accuracy']
)
model.fit(x_data, y_data, epochs=100)

由于神经网络随机初始化参数,而我这里的网络层数比较浅,训练轮次比较少,就会导致几乎每次训练的效果都是不同的,我随机取了一次,如:
在这里插入图片描述
然后,还是粗暴的使用原数据来进行预测,虽然这样不好,但懒得划分训练集和测试集了。

test_y_data = model.predict(x_data)  # 得到的是numpy的数据类型容器
tensor_y_data = tf.convert_to_tensor(test_y_data, tf.float32) # 将numpy类型的数据转换成tensor张量
max_index_y_data = tf.argmax(tensor_y_data, axis=1) # 按行求每个张量的最大值的索引

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦否

文章对你有用?不妨打赏一毛两毛

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值