基于华为云ModelArts进行鸢尾花分类实验 | 【玩转华为云】

举报
yd_216666332 发表于 2023/11/13 13:31:26 2023/11/13
【摘要】 本实验将使用MindSpore深度学习框架,使用鸢尾花数据集,搭建简单的全连接神经网络,完成鸢尾花种类分类任务。

鸢尾花分类实验

1实验介绍

本实验将使用MindSpore深度学习框架,使用鸢尾花数据集,搭建简单的全连接神经网络,完成鸢尾花种类分类任务。

鸢尾属约有300个品种,本实验将对下列3个品种进行分类:setosaversicolorvirginica数据集包含4个特征:sepal_lengthsepal_widthpetal_lengthpetal_width

如图所示,标签中0代表setosa1代表versicolor2代表virginica

 


2实验过程

  • 读取数据集,数据预处理
  1. fromnumpy import genfromtxt
  2. 读取数据集
  3. iris_data = genfromtxt('iris.csv', delimiter=',')
  4. iris_data = iris_data[1:] 移除第一行
  5. X = iris_data[:,:4].astype(np.float32) 特征
  6. y = iris_data[:,-1].astype(np.int32) 标签
  7. 数据归一化
  8. X /= np.max(np.abs(X),axis=0)
  9. 划分数据集
  10. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=2, random_state=42
  • 转换数据格式
  1. 训练集
  2. train_data = (X_train, y_train)
  3. train_data = ds.NumpySlicesDataset(train_data)
  4. 测试集
  5. test_data = (X_test, y_test)
  6. test_data = ds.NumpySlicesDataset(test_data)
  7. 批处理
  8. train_data = train_data.batch(32)
  9. test_data = test_data.batch(32)  
  • 定义网络
  1. 包含输入层、1个隐藏层和输出层,激活函数选择ReLu
  2. classmy_net(nn.Cell):
  3. 定义算子
  4. def __init__(self):
  5. super(my_net, self).__init__()
  6. fc1 = nn.Dense(410全连接层
  7. fc2 = nn.Dense(103全连接层
  8. relu = nn.ReLU() 激活函数
  9. 建构网络
  10. def construct(self, x):
  11. x = self.fc1(x)
  12. x = self.relu(x)
  13. x = self.fc2(x)
  14. return x 
  • 模型训练与评估
  1. 网络
  2. net = my_net()
  3. 损失函数
  4. net_loss = SoftmaxCrossEntropyWithLogits(sparse=True)
  5. # sparse,输出不是one hot编码时设为Ture
  6. 优化器
  7. lr = 01学习率
  8. momentum = 9动量
  9. net_opt = nn.Momentum(net.trainable_params(), lr, momentum)
  10. 模型
  11. model = Model(net, net_loss, net_opt, metrics={"accuracy": Accuracy()}) 
  12. 训练
  13. train(10, train_data)
  14. 评估
  15. eval(test_data)

 

  4

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。