超简单的神经网络构建方法,你上你也行


全文共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)


推荐阅读