超简单的神经网络构建方法,你上你也行
全文共2392字 , 预计学习时长11分钟
本文插图
图源:unsplash
人工智能 , 深度学习 , 这些词是不是听起来就很高大上 , 充满了神秘气息?仿佛是只对数学博士开放的高级领域?
错啦!在B站已经变成学习网站的今天 , 还有什么样的教程是网上找不到的呢?深度学习从未如此好上手 , 至少实操部分是这样 。
假如你只是了解人工神经网络基础理论 , 却从未踏足如何编写 , 跟着本文一起试试吧 。 你将会对如何在PyTorch 库中执行人工神经网络运算 , 以预测原先未见的数据有一个基本的了解 。
这篇文章最多10分钟就能读完;如果要跟着代码一步步操作的话 , 只要已经安装了必要的库 , 那么也只需15分钟 。 相信我 , 它并不难 。
长话短说 , 快开始吧!
本文插图
导入语句和数据集
在这个简单的范例中将用到几个库:
· Pandas:用于数据加载和处理
· Matplotlib: 用于数据可视化处理
· PyTorch: 用于模型训练
· Scikit-learn: 用于拆分训练集和测试集
本文插图
图源:unsplash
如果仅仅是想复制粘贴的话 , 以下几条导入语句可供参考:
import torch import torch.nn as nn import torch.nn.functional as F import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split
至于数据集 , Iris数据集可以在这个URL上找到 。 下面演示如何把它直接导入
Pandas: iris = pd.read_csv('https://raw.githubusercontent.com/pandas-dev/pandas/master/pandas/tests/data/iris.csv') iris.head()
前几行如下图所示:
本文插图
现在需要将 Name列中鸢尾花的品种名称更改或者重映射为分类值 。 ——也就是0、1、2 。 以下是步骤说明:
mappings = { 'Iris-setosa': 0, 'Iris-versicolor': 1, 'Iris-virginica': 2 }iris['Name'] = iris['Name'].apply(lambda x: mappings[x])
执行上述代码得到的DataFrame如下:
本文插图
这恭喜你 , 你已经成功地迈出了第一步!
本文插图
拆分训练集和测试集
在此环节 , 将使用 Scikit-Learn库拆分训练集和测试集 。 随后, 将拆分过的数据由 Numpy arrays 转换为PyTorchtensors 。
本文插图
图源:unsplash
首先 , 需要将Iris 数据集划分为“特征”和“ 标签集” ——或者是x和y 。 Name列是因变量而其余的则是“特征”(或者说是自变量) 。
接下来笔者也将使用随机种子 , 所以可以直接复制下面的结果 。 代码如下:
X = iris.drop('Name', axis=1).values y = iris['Name'].valuesX_train, X_test, y_train, y_test = train_test_split(X,y, test_size=0.2, random_state=42)X_train = torch.FloatTensor(X_train) X_test = torch.FloatTensor(X_test) y_train = torch.LongTensor(y_train) y_test = torch.LongTensor(y_test)
推荐阅读
- 无敌马克兔|使用3个看似简单的挑战,提高摄影技巧,拍摄出不俗的作品
- 韩博士装机大师|玩游戏卡顿?只要简单2步,开启电脑最大性能,速度提升10倍!
- 找靓机|还在说小米是屌丝机?小米的实力,可不是你想的那么简单
- 中金网|PruPay 使用 PayPal 构建基于文本的支付系统
- 保险慧择首席AI专家陈健:以数据智能构建保险服务效率指数提升
- 嘶吼RoarTalk|5 个简单的方法让你的 Gmail 邮箱更安全
- 长理职培谢老师|2021年国家电网招聘考试通信类高频考点:基于CDC-F特性光交叉构建下一代光网
- 新商业情报NBT|相比AI学习,“开言简单学”的外教视频更有亮点
- 极客特派员|荣耀X10简单上手,看看值不值得买
- 京东京东牵手埃克森美孚 全方位数字化体系构建助力汽车后市场转型