【AIGC扫盲】人工智能大模型快速入门

人工智能大模型的技术框架主要有以下几种:

  1. TensorFlow:这是一个由Google Brain团队开发的开源库,用于进行高性能数值计算,特别是用于训练和运行深度学习模型。TensorFlow提供了一种称为计算图的编程模型,它允许用户定义复杂的计算并自动计算梯度。此外,TensorFlow还提供了一组丰富的工具,用于可视化模型的结构和性能。

  2. PyTorch:这是一个由Facebook的AI研究团队开发的开源库,用于进行深度学习和其他形式的机器学习。与TensorFlow相比,PyTorch的设计更加灵活和直观,它允许用户在运行时更改计算图。此外,PyTorch还提供了一种简洁的编程模型,使得代码更容易理解和调试。

  3. Keras:这是一个用于深度学习的高级API,可以运行在TensorFlow、Theano和CNTK等底层引擎之上。Keras的设计理念是提供一种简单和快速的方式来创建和训练深度学习模型,而不需要了解底层的详细实现。

  4. Theano:这是一个用于深度学习的开源库,由蒙特利尔大学的MILA实验室开发。Theano可以自动计算梯度,并提供了一种优化计算图的方式,以提高运行效率。然而,由于TensorFlow和PyTorch的流行,Theano的开发已经在2017年停止。

  5. MXNet:这是一个用于深度学习的开源库,由亚马逊Web服务(AWS)支持。MXNet提供了一种灵活的编程模型,允许用户在运行时更改计算图。此外,MXNet还提供了一种高效的分布式训练方法,可以在多台机器上并行训练模型。

  6. ONNX (Open Neural Network Exchange):这是一个开放的模型交换格式,允许用户在不同的深度学习框架之间转换模型。ONNX支持大量的深度学习框架,包括PyTorch、TensorFlow、MXNet等。

  7. OpenAI’s GPT Models:OpenAI GPT模型是一种基于Transformer的大型语言模型,用于生成自然语言文本。目前,我使用的是OpenAI的GPT-4模型。

TensorFlow如何使用?

TensorFlow是一个强大的深度学习框架,可以用来创建各种各样的神经网络模型。以下是一个简单的TensorFlow使用示例,该示例显示了如何创建和训练一个用于识别手写数字的简单神经网络(使用MNIST数据集):

首先,需要导入TensorFlow和其他必要的库:

import tensorflow as tf
from tensorflow.keras.datasets import mnist
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Flatten
from tensorflow.keras.layers import Conv2D, MaxPooling2D

然后,我们加载MNIST数据集,并对数据进行预处理:

(x_train, y_train), (x_test, y_test) = mnist.load_data()# 将图像数据从 (28, 28) 的数组转换为 (28, 28, 1) 的三维张量
x_train = x_train.reshape(x_train.shape[0], 28, 28, 1)
x_test = x_test.reshape(x_test.shape[0], 28, 28, 1)# 将像素值从整数转换为浮点数,并将其归一化到 0-1 的范围
x_train = x_train.astype('float32') / 255
x_test = x_test.astype('float32') / 255# 将目标(标签)转换为 one-hot 编码
y_train = tf.keras.utils.to_categorical(y_train, 10)
y_test = tf.keras.utils.to_categorical(y_test, 10)

接下来,我们创建一个神经网络模型:

model = Sequential()
model.add(Conv2D(32, kernel_size=(3, 3), activation='relu', input_shape=(28, 28, 1)))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(10, activation='softmax'))

然后,我们编译模型,并指定损失函数和优化器:

model.compile(loss=tf.keras.losses.categorical_crossentropy,optimizer=tf.keras.optimizers.Adadelta(),metrics=['accuracy'])

最后,我们训练模型,并在测试数据上评估其性能:

model.fit(x_train, y_train,batch_size=128,epochs=10,verbose=1,validation_data=(x_test, y_test))score = model.evaluate(x_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])

以上就是一个简单的TensorFlow使用示例。实际上,TensorFlow的功能远不止这些,它还支持分布式计算、自动梯度计算、GPU加速等高级功能。
PyTorch是一个用于深度学习的开源库,它的设计理念是灵活和直观,提供了一种简洁的编程模型,使得代码更容易理解和调试。以下是一个简单的PyTorch使用示例,该示例显示了如何创建和训练一个用于识别手写数字的简单神经网络(使用MNIST数据集):

首先,需要导入PyTorch和其他必要的库:

import torch
import torch.nn as nn
import torch.nn.functional as F
from torchvision import datasets, transforms
from torch.optim import Adam

然后,我们定义一个神经网络模型:

class Net(nn.Module):def __init__(self):super(Net, self).__init__()self.conv1 = nn.Conv2d(1, 32, 3, 1)self.conv2 = nn.Conv2d(32, 64, 3, 1)self.dropout1 = nn.Dropout2d(0.25)self.dropout2 = nn.Dropout2d(0.5)self.fc1 = nn.Linear(9216, 128)self.fc2 = nn.Linear(128, 10)def forward(self, x):x = self.conv1(x)x = F.relu(x)x = self.conv2(x)x = F.relu(x)x = F.max_pool2d(x, 2)x = self.dropout1(x)x = torch.flatten(x, 1)x = self.fc1(x)x = F.relu(x)x = self.dropout2(x)x = self.fc2(x)output = F.log_softmax(x, dim=1)return output

接下来,我们加载MNIST数据集,并对数据进行预处理:

transform=transforms.Compose([transforms.ToTensor(),transforms.Normalize((0.1307,), (0.3081,))])dataset1 = datasets.MNIST('./data', train=True, download=True,transform=transform)
dataset2 = datasets.MNIST('./data', train=False,transform=transform)train_loader = torch.utils.data.DataLoader(dataset1, batch_size=64)
test_loader = torch.utils.data.DataLoader(dataset2, batch_size=1000)

然后,我们创建一个模型实例,并指定优化器:

model = Net()
optimizer = Adam(model.parameters())

最后,我们定义一个训练循环,并在每个epoch后在测试数据上评估模型的性能:

for epoch in range(1, 11):model.train()for batch_idx, (data, target) in enumerate(train_loader):optimizer.zero_grad()output = model(data)loss = F.nll_loss(output, target)loss.backward()optimizer.step()model.eval()test_loss = 0correct = 0with torch.no_grad():for data, target in test_loader:output = model(data)test_loss += F.nll_loss(output, target, reduction='sum').item()pred = output.argmax(dim=1, keepdim=True)correct += pred.eq(target.view_as(pred)).sum().item()test_loss /= len(test_loader.dataset)print('\nTest set: Average loss: {:.4f}, Accuracy: {}/{} ({:.0f}%)\n'.format(test_loss, correct, len(test_loader.dataset),100. * correct / len(test_loader.dataset)))

以上就是一个简单的PyTorch使用示例。实际上,PyTorch的功能远不止这些,它还支持动态计算图、自动梯度计算、GPU加速等高级功能。

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

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

相关文章

MS Access 函数参考手册

目录 MS Access 字符串函数 MS Access 数值函数 MS Access 日期函数 MS Access 其他函数 MS Access 字符串函数 函数描述Asc返回特定字符的 ASCII 值Chr返回指定ASCII码的字符Concat with &将两个或多个字符串加在一起CurDir返回指定驱动器的完整路径Format用指定的格…

如何在CentOS安装DataEase数据分析服务并实现远程访问管理界面

如何在CentOS安装DataEase数据分析服务并实现远程访问管理界面 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 🌈你好呀!我是 是Yu欸 🌌 202…

IDEA中的Run Dashboard

Run Dashboard是IntelliJ IDEA中的工具【也就是View中的Services】,提供一个可视化界面,用于管理控制应用程序的运行和调试过程。 在Run DashBoard中,可以看到所有的运行配置,以及每个配置的运行状态(正在运行&#xf…

【vue2源码】阶段一:Vue 初始化

文章目录 一、项目目录1、主目录2、打包入口 二、构造函数Vue的初始化1、创建 Vue 构造函数2、初始化内容分析2.1 initMixin2.2 stateMixin2.3 eventsMixin2.4 lifecycleMixin2.5 renderMixin 一、项目目录 源码版本:2.7.16 1、主目录 src |-- compiler # 包…

Camille-学习笔记-web基础知识

web基础1.系统架构 B/S :Browser/Server 网站 界面层(UI) 业务逻辑层(业务) 数据访问层(数据库) 静态网页:和服务器没有数据交互 动态网页:网页数据可以和服务器进行数据交互 URL…

python执行linux系统命令的三种方式

前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 1. 使用os.system 无法获取命令执行后的返回信息 import osos.system(ls)2. 使用os.popen 能够获取命令执行后的返回信息 impor…

Vue3+Koa2实现图片上传(不再畏惧)

大家好,我是勇宝,一个热爱前端的小学生,年关将至,提前祝大家新年快乐。今天呢,我们就来好好的啃一啃图片上传,从一个前端开发者的角度来探讨一下图片上传前后端到底都做了哪些事情。 文章目录 一、技术摘要…

《Pandas 简易速速上手小册》第7章:Pandas 文本和类别数据处理(2024 最新版)

文章目录 7.1 文本数据的基本操作7.1.1 基础知识7.1.2 重点案例:客户反馈分析7.1.3 拓展案例一:产品评论的关键词提取7.1.4 拓展案例二:日志文件中的日期提取 7.2 使用正则表达式处理文本7.2.1 基础知识7.2.2 重点案例:日志文件错…

VMware创建虚拟机

点击文件,新建虚拟机 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

【LeetCode】每日一题 2024_2_2 石子游戏 VI(排序、贪心)

文章目录 LeetCode?启动!!!题目:石子游戏 VI题目描述代码与解题思路 LeetCode?启动!!! 题目:石子游戏 VI 题目链接:1686. 石子游戏 VI 题目描述…

Hbase-2.4.11_hadoop-3.1.3集群_大数据集群_SSH修改默认端口22为其他端口---记录025_大数据工作笔记0185

其实修改起来非常简单,但是在大数据集群中,使用到了很多的脚步,也需要修改, 这里把,大数据集群,整体如何修改SSH端口,为22022,进行总结一下: 0.hbase-2.4.11的话,hbase集群修改默认SSH端口22,修改成22022,需要修改 需要修改/opt/module/hbase-2.4.11/conf/hbase-env.sh 这里…

自动化测试笔记

TDD 之 ATDD 之 CUCUMBER & BDD CUCUMBER 可将人类自然语言转化为(Ruby, python, javascript, C#等)测试代码。 可以传递参数,可打标签tag进行分类管理,, login Scenario: … Given ... When ... Then ... 可加…

程序人生 - ICP 备案和域名备案是一回事吗?区别是什么?

ICP备案和域名备案是两个不同的概念,ICP备案是指互联网信息服务提供者备案,也就是对于在中国境内提供互联网信息服务的网站必须进行备案登记。而域名备案是指将域名与网站的实际内容进行备案登记。 ICP备案是针对网站运营者的一种许可证,必须…

【Android测试】Appium是否适合用于模拟多指触控呢?

1 问题说明 对于 mobile app automation, ChatGPT4会推荐Appium作为底层的触控工具库;但是,我们一直感觉pyminitouch其实是更好的选择;那么,Appium是否适合用于模拟多指触控呢? 2 资料查询 2.1 Williamfzc: minitou…

pytorch调用gpu训练的流程以及示例

首先需要确保系统上安装了CUDA支持的NVIDIA GPU和相应的驱动程序。 基本步骤如下 检查CUDA是否可用: 使用 torch.cuda.is_available() 来检查CUDA是否可用。 指定设备: 可以使用 torch.device(“cuda:0”) 来指定要使用的GPU。如果系统有多个GPU&…

shell脚本之免交互

目录 一、Here Document 免交互 1、交互与免交互的概念 2、 Here Document 概述 二、Here Document 应用 1、使用cat命令多行重定向 2、使用tee命令多行重定向 3、使用read命令多行重定向 4、使用wc -l统计行数 5、使用passwd命令用户修改密码 6、Here Document 变量…

fastadmin导入excel并对导入数据处理

情景描述 fastadmin有自带的导入功能,但是不好用,它要求你的表格标题必须跟数据表的备注一致,而且拿到的数据是直接插入数据表,我们无法获取想要的数据并对数据进行处理;而且有时候我们只是想要单纯的读取文件功能&…

丰田再怼「纯电动」,抛出「30%上限论」背后的焦虑和矛盾

让传统车企「丢掉」燃油车的包袱,并不简单。一边是赚钱,一边是烧钱,如何平衡是一个不小的难题。 本周,丰田董事长丰田章男对外表示,其预测未来电动汽车的市场份额将只有30%。而在电动化进程中,丰田章男一直…

搭建nginx的RTMP服务器的步骤

搭建Nginx RTMP服务器涉及几个关键步骤,包括安装必需的依赖、下载和编译Nginx及RTMP模块、配置Nginx以支持RTMP流,以及启动Nginx服务。以下是Ubuntu 22.04上搭建Nginx RTMP服务器的详细步骤: 1. 安装编译依赖 首先,你需要安装一…

持续积累分享金融知识

持续积累分享金融知识 一、什么是两融余额?二、什么是量化?三、散户可以进行量化投资么? 一、什么是两融余额? 两融余额是指投资者在融资买入和融券卖出交易中,通过向券商借入资金或证券进行交易,并且在交…