用ChatGPT写神经网络!

 Datawhale干货 

技术:ChatGPT,编辑:机器之心

AI 写 AI,来得比预料中更快一些。

自从去年底推出以来,对话式 AI 模型 ChatGPT 火遍了整个社区。

ChatGPT 的确是一个了不起的工具,就像一个「潘多拉魔盒」。一旦找到正确的打开方式,你或许会发现,自己再也离不开它了。

作为一个全能选手,人们给 ChatGPT 提出的要求五花八门,有人用它写论文,有人让它陪聊,这些都是常见的玩法。脑洞再打开一点,既然 ChatGPT 是 AI 中的「王者」,那它会不会写一个 AI?

近日,一位机器学习领域的博主突发奇想,他决定让 ChatGPT 构建一个神经网络,使用 Keras 解决 MNIST 问题。

MNIST 算是机器学习领域的经典问题。即使这个手写数字数据集逐渐淡出了计算机视觉领域,但它的纪念意义仍然不可忽视,很多人入门深度学习的第一个数据集、验证算法的第一个实验都是 MNIST。

a12a7bdc4adf88b2ef2c81f08a45a4e6.png

话不多说,想到了就开工。作者直接让 ChatGPT 写了一段代码,看上去完美无缺,甚至不需要更改任何内容。

7c1f4dd20d8202f882f68a72bec2469d.png

这是一个很好的开始。

ChatGPT 选择了分类交叉熵作为损失函数。作者提出重写分类交叉熵这部分代码,ChatGPT 将其替换为稀疏分类交叉熵,更新之后的代码仍能 Work。可以发现,新的损失函数放弃了标签的分类转换。

16341d55e81d2fc4f380504d4d4e465e.png

ChatGPT 生成的代码使用了全连接层,但作者想使用卷积层。因此,ChatGPT 按照指示修改了代码,并添加了一个 Conv2D 和一个最大池化层(MaxPooling layer)。

adf964ab03eef6088b2d8a35762b7aa2.png

然后来到了评估最终模型阶段,作者让 ChatGPT 使用测试集编写代码。

c28fba97f967589d73fa7cad188f4aa2.png

结果看起来很棒,而且 ChatGPT 的每一次回复都带有完整的解释。比如在这次评估中,它这样解释:

「评估」方法将测试数据和测试标签作为参数,并返回模型编译(此处为准确率)期间指定的损失和度量。上面的代码片段输出了测试的准确率,这应该可以让你了解到模型对新数据的概括性。‍

模型在训练期间使用了整个测试集作为验证数据。然后,作者让 ChatGPT 将其更改为训练数据的 20%。

4a52317f85a3c8ca8556e96b384949ee.png

此外,作者还想要更小的 batch 并运行更少 epoch 的代码。虽然这一步未必要用到 ChatGPT,但他不想在不更新 ChatGPT 上下文的情况下更改代码。

所以这项任务还是落在了 ChatGPT 头上:

ae549de3c2842c1e26780aa90a917e1d.png

接下来,作者打算绘制训练过程中的训练和测试损失图。ChatGPT 的建议是:需要更改适合模型的 line 以捕获其结果值。

51081e8e3bec1f0aa17cf3ca65f43a59.png

3983685211cb618183a6828f91112d12.png

为了展示数据集中的一些示例,作者让 ChatGPT 编写代码来输出图像和标签的组合。这些输出的代码也很完美,附有 20 张图片的合集。

ed9006a5c71c94df393f0abf5a7c1c9a.png

5ab9a6ab458cbe0936caaffd7bc15be6.png

构建模型时,查看其结构也是必要的。如果用这个问题去问 ChatGPT ,回复是:

9c952cd8c63dad821df3a67f3fb03d69.png

ChatGPT 给出的是关于模型的总结:

a449734e4dab6296a6f2518747b69442.png

模型的总结很有用,但作者更想看到显示模型结构的图。所以继续问:

c10d09dbb975506105d3448229a63815.png

8d2ccc7d3e93d43204f2e279478fe1de.png

结果是满意的,最后就是准备部署这个模型了,让 ChatGPT 将模型保存到磁盘吧:

c9b452763b1e294f8e3ff4f81e5db919.png

现在,作者想创建一个使用保存的模型进行预测的类。这是 prompt 很有趣,解决方案也很完美。

8def2d7278e0d29f7ffda228dc7f1a59.png

现在编写一个示例,使用预测器的类来预测 10 个随机图像的标签:

c75f483ffc55b9717407a77bd8058b83.png

为了完成这个,作者让 ChatGPT 展示了一个混淆矩阵:

d6fd31f31151efa8eee7fe1d6719f129.png

该说不说,ChatGPT 使用的样式还真挺好看。

36b9c3b8925954483cd693171e9935f4.png

完成所有试验后,作者将所有 ChatGPT 生成的代码公布了出来,你也可以上手试试:

地址:https://colab.research.google.com/drive/1JX1AVIfGtIlnLGqgHrK6WPylPhZvu9qe?usp=sharing

510f43984c197ee0cf67c1b051e01e29.png整理不易,三连


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部