当我用ChatGPT中学习CNN卷积神经网络时...

本文节选自本人博客:https://www.blog.zeeland.cn/archives/chatgpt-asoihgoihrx

Introduction

ChatGPT大火,在这一段时间并没有觉得ChatGPT特别厉害,最多就是一个基于生成式对话的NLP模型罢了,直到我看到了AI扮演Linux虚拟机,能管理文件&编程&开浏览器,还能跟自己「套娃」聊天 | ChatGPT新玩法,于是好奇的我打算去讨教一下ChatGPT,于是就有了以下的场面。

我和ChatGPT的对话

Q: 现在你需要给出一个详细基于CNN和Pytorch预测mnist的过程和解释,并附上一个example

ChatGPT:
让我们来讲解一下如何使用CNN和PyTorch来预测MNIST数据集。

首先,MNIST数据集是一个手写数字识别数据集,包含60000张训练图片和10000张测试图片。每张图片都是28x28像素的灰度图片,并且包含0到9的数字。

首先,我们需要安装PyTorch。要安装PyTorch,请执行以下操作:

  1. 安装Anaconda(如果您还没有安装)。
  2. 打开终端/命令提示符,并使用以下命令安装PyTorch:
conda install pytorch torchvision -c pytorch

安装完成后,我们可以开始编写代码。首先,我们需要导入一些必要的库,如下所示:

import torch
import torchvision
import torch.nn as nn
import torch.nn.functional as F
import torch.optim as optim

然后,我们需要准备MNIST数据集。为此,我们可以使用PyTorch的 torchvision 库来下载和加载MNIST数据集,如下所示:

train_dataset = torchvision.datasets.MNIST(root='./data', train=True, transform=torchvision.transforms.ToTensor(), download=True)
test_dataset = torchvision.datasets.MNIST(root='./data', train=False, transform=torchvision.transforms.ToTensor(), download=True)

接下来,我们需要将数据集分成两部分,一部分用于训练,另一部分用于验证。为此,我们可以使用PyTorch中的 DataLoader 函数,

Q: 继续

ChatGPT:
好的,接下来我们需要使用PyTorch的DataLoader函数来将数据集分成训练集和验证集,如下所示:

train_loader = torch.utils.data.DataLoader(dataset=train_dataset, batch_size=64, shuffle=True)
test_loader = torch.utils.data.DataLoader(dataset=test_dataset, batch_size=64, shuffle=False)

现在,我们需要定义一个网络模型来进行图像分类。为此,我们可以定义一个继承自nn.Module的类,并定义其中的前向传播函数,如下所示:

class CNN(nn.Module):def __init__(self):super(CNN, self).__init__()self.conv1 = nn.Conv2d(in_channels=1, out_channels=16, kernel_size=5, stride=1, padding=2)self.pool = nn.MaxPool2d(kernel_size=2, stride=2)self.conv2 = nn.Conv2d(in_channels=16, out_channels=32, kernel_size=5, stride=1, padding=2)self.fc1 = nn.Linear(32 * 7 * 7, 10)def forward(self, x):x = self.pool(F.relu(self.conv1(x)))x = self.pool(F.relu(self.conv2(x)))x = x.view(x.size(0), -1)x = self.fc1(x)return x

这里我们定义了一个包含两个卷积层和两个池化层的网络,并使用一个全连接层将最后的特征映射到输出类别。

接下来,我们需要定义一个损失函数来计算预测和真实值之间的差距。在这里,我们使用交叉熵损失函数,如下所示:

Q: 继续

ChatGPT:
好的,接下来我们定义交叉熵损失函数,如下所示:

criterion = nn.CrossEntropyLoss()

接下来,我们需要定义一个优化器来更新网络参数。在这里,我们使用随机梯度下降(SGD)优化器,并指定学习率为0.01,如下所示:

optimizer = optim.SGD(model.parameters(), lr=0.01)

现在我们已经准备好训练网络了。为此,我们需要迭代训练数据集中的每一个批次,并在每个批次上运行以下步骤:

  1. 将数据输入网络,并使用前向传播函数计算预测值。
  2. 计算损失函数的值。
  3. 计算损失函数的梯度。
  4. 使用优化器更新网络参数。

下面是完整的训练过程:

# 训练网络
for epoch in range(5):for batch_idx, (data, targets) in enumerate(train_loader):# 计算预测值outputs = model(data)# 计算损失函数loss = criterion(outputs, targets)# 梯度清零optimizer.zero_grad()# 反向传播loss.backward()# 更新参数optimizer.step()

最后,我们可以使用测试数据集来评估网络的性能。为此,我们可以迭代测试数据集中的每一个批次。

Q: 继续

ChatGPT:
好的,接下来我们使用测试数据集来评估网络的性能。为此,我们可以迭代测试数据集中的每一个批次,并在每个批次上运行以下步骤:

  1. 将数据输入网络,并使用前向传播函数计算预测值。
  2. 计算损失函数的值。
  3. 计算精度。

下面是完整的评估过程:

# 评估网络
model.eval()
with torch.no_grad():correct = 0total = 0for data, targets in test_loader:outputs = model(data)_, predicted = torch.max(outputs.data, 1)total += targets.size(0)correct += (predicted == targets).sum().item()print('精度:{}%'.format(100 * correct / total))

这就是使用CNN和PyTorch预测MNIST数据集的一个完整示例。希望这对你有所帮助。

Summary

事实上我被震惊到了,从上文的对话可以看到,我唯一做的事情就是“继续”,所有的工作都是ChatGPT做完的,从ChatGPT介绍了数据预处理、CNN构建、训练到预测的一整套方法论,从一定程度上说,他就是一个知识渊博的人,所以是否可以将它作为一个搜索引擎+老师的复合体,使用ChatGPT进行学习呢?

我曾经一直很关注人工智能的伦理问题,包括如果人工智能拥有类人的智慧,它是否可以被定义为人等问题,我想未来几年人工智能的伦理问题会越来越凸显,事实上,我们可以看到,基本每年机器学习领域都会有一些让人意向不到的扩展面技术出来,这些技术和运用不仅在某些程度上会取代一部分人类的工作,更会催生出一些新的领域和行业,从一个方面说,这或许是创新驱动发展的一种体现?从另外一个方面来说,当前人类社会的价值观是否能够跟上这样高速发展地科技水平呢?

在未来,人工智能的伦理问题及其带来的矛盾会逐渐凸显,一方面,这是一个很好的发展机遇,另一方面,人类更需要好好地审视一下人类社会发展的意义,审视一下哲学三问,以及我们需要构建一个怎样的科技树?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/4704.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最近大火的chatGPT是什么?它是怎样聊天的?

ChatGPT是一款革命性的聊天机器人软件, ChatGPT( ChatGPT AI,聊天机器人欢迎您!)的核心功能是自动回复,可以根据客户的输入自动生成回复,从而提高客户服务的效率。还可以根据客户的输入自动生成…

最近大火的ChatGpt,到底给我们带来了哪些改变?

我相信最近大家都有听说这个ChatGpt了吧! 即使没有听说过也没有关系,我来给大家掰扯掰扯。 OpenAI公司推出了一款名为ChatGPT的人工智能聊天机器人,该技术通过利用大量训练数据,实现了人类般的自然语言处理能力,并能…

BC双驱、ChatGPT大火,AI独角兽撬开盈利大门?

配图来自Canva可画 放眼AI行业,各大AI玩家长期亏损、“钱”景堪忧。 回看过去一年,部分AI独角兽的亏损问题愈发尖锐——云从科技2022年净亏损同比扩大至8.5亿元;寒武纪2022年净亏损11.6亿元,较上年同期扩大41.4%;地平…

ChatGPT大火!曙光算力服务被抢注一空

当下人工智能领域的流量担当,毫无疑问是ChatGPT。它不仅可像朋友一样跟你聊天,甚至还能帮你写代码、改剧本仅上线2个多月,ChatGPT的月活跃用户已过亿,刷新纪录。 随着ChatGPT爆火,国内外科技企业纷纷加入这场人工智能竞…

颠覆医疗未来,ChatGPT大火带动AI医疗价值重估

最近,ChatGPT、GPT-4的火热出圈引发行业内外的强烈关注,其背后的核心技术——人工智能,更是成为这一时期的“热门高频词”。 伴随大数据、云计算、5G时代的到来,AI技术正在飞速发展,在颠覆人们固有印象的同时&#xf…

2023年,ChatGPT大火!这些隐藏玩法,不知道还有谁?

自ChatGPT问世以来,其强大的人工智能技术在各行业引发了巨大的变革。作为普通人,我们可以从ChatGPT中获得许多实用的工具,在工作和学习上获得便利。此外,ChatGPT还有一些隐藏玩法,值得探索!虽然无法通过cos…

ChatGPT大火,悉尼大学允许使用ChatGPT写作业

ChatGPT的大火,几乎遍及各行各业,大家在网上玩儿转这个什么都会的人工智能,玩儿得不亦乐乎。 不过,目前在全世界范围内,对ChatGPT涉及学术造假的打击,还是很严格的。 但澳洲八大,最近却开了口…

ChatGPT 团队有几个人?

以下内容来自公众号逆锋起笔,关注每日干货及时送达 经常被认为研发经验不足的年轻人,就不能在前沿科技领域取得重大突破吗?当然不是!来看看 ChatGPT 团队吧~ 来源丨君工小参 / 正文 / ChatGPT 团队规模不足百人(共 87 …

一键部署你的私人 ChatGPT 网页版,这款开源应用太牛了

一键免费部署你的私人 ChatGPT 网页应用。 在线部署 准备好你的 OpenAI API Key,进入 https://vercel.com/new开始部署: 环境变量 本项目大多数配置项都通过环境变量来设置。 OPENAI_API_KEY (必填项):OpanAI 密钥&…

OpenAI发布GPT-4;目前最完整的ChatGPT资源库;中文版提示词工程指南;AI颠覆播客体验;ChatGPT引发的10大职业危机 | ShowMeAI日报

👀日报合辑 | 🎡生产力工具与行业应用大全 | 🧡 点赞关注评论拜托啦! 🤖 『魔幻美术馆』可口可乐最新广告,大量使用了AIGC技术 🌏 可口可乐神级广告:魔幻美术馆 讲述了一瓶可乐在美术…

【开源】团队版 ChatGPT Web 应用,多用户,免登录

Muchat 团队版 ChatGPT Web 应用,多用户,免登录。适合公司、组织或小团体内部使用。 有人乍一看目录觉得只是发布了个 exe,但实际代码在各个子仓库中,本仓库只是一个入口 特性 无需登录,输入卡密即可使用支持匿名试用…

炸裂开源:你肯定需要的6 个中文版 ChatGPT 提示教程。

提示工程(Prompt Engineering)是一门相对较新的学科,教你你如何开发、优化提示来更好的使用 GPT 等大模型、更好的将大模型的能力接入到你的系统中。 本文整理了 GitHub 上质量最高的 6 个【中文版】提示工程教程。请收藏、转发,…

【NLP】复旦开源MOSS,首个「中国版ChatGPT」 附详细下载+安装+部署教程

来源 | 新智元 微信号:AI-era 复旦NLP团队首次上线MOSS两个月后,他们遵照承诺,真的把MOSS开源了。同时,MOSS也成为了国内首个搭载插件系统的开源对话语言模型。 国内首个类ChatGPT模型MOSS,开源了! 这次&a…

【Docker教程(二)】Docker安装和chatgpt私有化部署

1. Docker基本介绍 2. Docker和Docker Compose安装 3. Docker启动容器 4. chatgpt私有化部署 5. docker-compose.yml文件模板 6. 结合tg的chatgpt私有化部署 1. Docker基本介绍 Docker 是一款开源的容器化引擎,允许开发者将应用程序及其依赖项打包到一个可移植…

未能成功加载扩展程序_该扩展程序未列在 Chrome 网上应用店中,并可能是在您不知情的情况下添加的解决办法...

1.将下载的文件解压,得到.crx和其它几个文件 2.将该文件后缀改成rar 3.然后再次解压这个rar文件 就会得到很多个js、html等文件,其实你已经成功了,这样; 其实本来crx是一个文件添加不能用,但是转成rar在解压就是多个文…

油猴插件安装和使用

一.安装油猴 进入油猴的官网Greasy Fork,下载你对应浏览器的版本例如我谷歌浏览器下载的是这个Tampermonkey.crx; 下载好后,谷歌浏览器中,打开更多工具——扩展程序,进入拓展程序后,把下载的油猴插件拖到拓…

ChatGPT易编程:你的AI编程助手使用指南

目录 1. 安装和注册 2. 功能介绍 3. 如何使用 4. 技术支持 5. 常见问题 可以画软件工程或工程设计中的图吗? ChatGPT分析代码的过程和人分析代码的过程相似吗?(答案由GPT4给出) ChatGPT易编程,作为一款强大的AI…

chatglm+langchain

目录 chatglmlangchain 1.1. 主要功能: 1.2. Langchain中提供的模块 1.3. Langchain应用场景 2.1. chatglm应用: 1.1. 基于单一文档问答的实现原理 chatglmlangchain GitHub - imClumsyPanda/langchain-ChatGLM: langchain-ChatGLM, local knowledge bas…

android监听短信发送和接收

文章目录 目录 一、MainActivity和activity_main 二、创建service和util类 三、配置manifest 一、MainActivity和activity_main import androidx.appcompat.app.AppCompatActivity;import android.content.ContentResolver; import android.content.Intent; import android.con…

为什么银行卡收不到消息服务器,你为什么收不到银行短信?

原标题:你为什么收不到银行短信? 银行卡想必大家都不陌生,现在的人手中基本上都会有个三五张银行卡,大家在去银行办理手续的时候一般都会开通短信提醒,以方便大家对资金进行掌控。 但是你有没有发现过这样一个现象&…