零基础使用Swift学习数据科学
该库还向Swift添加了许多有用的特性,比如对自动微分的原生支持(这让我想起了PyTorch中的Autograd),从而使它与数值计算更加兼容。 ![]() 4.1 关于数据集 让我们来理解一下我们将在本节中使用的问题陈述。如果你以前接触过深度学习领域,你可能对它很熟悉。 我们将构建一个卷积神经网络(CNN)模型,使用MNIST数据集将图像分类为数字。该数据集包含6万张训练图像和1万张手写数字测试图像,可用于训练图像分类模型: ![]() 这个数据集是处理计算机视觉问题的一个相当常见的数据集,所以我不打算详细描述它。 4.2 开始项目 在开始构建模型之前,我们需要下载数据集并对其进行预处理。为了方便你,我已经创建了一个GitHub存储库,里面预处理了代码和数据 下载安装代码,下载数据集,导入必要的库:
4.3 加载数据集 4.4 探索MNIST 我们将从数据集绘制一些图像,以了解我们的工作是什么: 这是我们的图像是这样的: ![]() 看起来很直观,对吧?第一个数字是手写的0,第二个数字是4。 4.5 定义模型的结构 现在让我们定义模型的体系结构。我使用的是LeNet-5架构,这是一个非常基础的CNN模型,使用了2个卷积层,平均池化层和3个全连接层。 最后一个全连接层的形状是10,因为我们有10个目标类,每个数字一个从0到9:
4.6 选择梯度下降作为优化器 类似地,我们需要一个优化器函数来训练我们的模型。我们将使用Swift4Tensorflow中提供的随机梯度下降(SGD): Swift4Tensorflow支持许多额外的优化器。你可以根据你的项目选择:
4.7 模型训练 现在一切都设置好了,让我们来训练模型! 上面的代码运行一个训练循环,该循环将数据集示例提供给模型,以帮助它做出更好的预测。以下是我们的训练步骤:
epochCount变量是遍历数据集集合的次数。 你花了多少epoch才在测试集上达到90%以上的准确率? 我在12个epoch内,在训练和测试集的准确率都达到了97%以上。 ![]() 4.8 可视化训练和测试数据 虽然打印出模型的训练进度很有帮助,但是看到可视化图像通常更有帮助。 让我们将在模型训练期间捕获的训练和测试统计数据可视化。 这是训练和测试精度在训练过程中的演变过程: ![]() 5.数据科学Swift的未来 行业专家们对Swift的反应是令人难以置信的,感觉它不仅有潜力成为数据科学的主流语言,而且它也是用于在现实世界构建基于机器学习的应用程序。 目前,它还处于起步阶段,围绕数据科学和数值计算的库仍在发展中。然而,它背后有强大的行业支持,我期待着未来它将拥有一个丰富的工具和库生态系统(甚至可能比现在的Python更好)。 这里有几个Swift的库,你可以进一步探索:
(编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |