我用ChatGPT写神经网络:一字不改,成果居然很好用的介绍

科技 2023-01-13 18:55 阅读:18

机器之心报导

修改:蛋酱

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

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

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

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

近来,一位机器学习范畴的博主突发奇想,他决议让 ChatGPT 构建一个神经网络,运用 Keras 处理 MNIST 问题。

MNIST 算是机器学习范畴的经典问题。即便这个手写数字数据集逐步淡出了计算机视觉范畴,但它的留念含义依然不行忽视,很多人入门深度学习的第一个数据集、验证算法的第一个实验都是 MNIST。

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

这是一个很好的开端。

ChatGPT 挑选了分类穿插熵作为丢失函数。作者提出重写分类穿插熵这部分代码,ChatGPT 将其替换为稀少分类穿插熵,更新之后的代码仍能 Work。可以发现,新的丢失函数抛弃了标签的分类转化。

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

然后来到了评价终究模型阶段,作者让 ChatGPT 运用测验集编写代码。

成果看起来很棒,并且 ChatGPT 的每一次回复都带有完好的解说。比方在这次评价中,它这样解说:

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

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

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

所以这项使命仍是落在了 ChatGPT 头上:

接下来,作者计划制作练习过程中的练习和测验丢失图。ChatGPT 的主张是:需要更改合适模型的 line 以捕获其成果值。

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

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

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

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

成果是满足的,最终便是预备布置这个模型了,让 ChatGPT 将模型保存到磁盘吧:

现在,作者想创立一个运用保存的模型进行猜测的类。这是 prompt 很风趣,处理方案也很完美。

现在编写一个示例,运用猜测器的类来猜测 10 个随机图画的标签:

为了完结这个,作者让 ChatGPT 展现了一个混杂矩阵:

该说不说,ChatGPT 运用的款式还真挺美观。

完结一切实验后,作者将一切 ChatGPT 生成的代码发布了出来,你也可以上手试试:

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