PyTorch深度学习实践学习笔记(1)

本文介绍了机器学习的过程,包括模型选择、训练与验证。对比了深度学习与经典机器学习的区别,并指出深度学习能解决维度诅咒问题。同时,讨论了SVM的局限性,如手动设计特征和处理大数据集的能力不足。感知机和人工神经网络作为深度学习的基础也得到了提及。
部署运行你感兴趣的模型镜像

PyTorch深度学习实践学习笔记(1)——b站刘二大人

机器学习的过程:从数据集中把算法找出来
1)找出模型;
2)拿数据做训练;
3)验证模型。
基于规则的系统:输入——手动设计程序——输出;
经典的机器学习:输入——手动选取特征——建立映射函数关系——输出;
表示学习:(提取Features)
表示学习
维度诅咒:input中feature数量多,维度变高,对数据的需求量会增大,工作量大。
降维:n维空间——3维空间
[3×1]=[3×n][n×1] ——找出3×n矩阵
深度学习:(训练过程是对整个模型进行训练,不分开)
在这里插入图片描述
SVM问题
1)手工设计功能的限制;
2)不能很好地处理大数据集;
3)越来越多的应用程序需要处理非结构化数据。
感知机与人工神经网络
感知机

您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

由于没有提供具体的参考引用内容,无法准确给出《PyTorch深度学习实践学习笔记第四部分的内容。不过,一般《PyTorch深度学习实践》可能会涵盖以下方面作为第四部分的内容,比如可能是更复杂的神经网络架构,像卷积神经网络(CNN)的深入讲解与实践。 以下是一个简单的 PyTorch 实现简单卷积神经网络的代码示例: ```python import torch import torch.nn as nn import torch.optim as optim import torchvision import torchvision.transforms as transforms # 定义超参数 batch_size = 4 learning_rate = 0.001 num_epochs = 2 # 数据预处理 transform = transforms.Compose( [transforms.ToTensor(), transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))]) # 加载数据集 trainset = torchvision.datasets.CIFAR10(root='./data', train=True, download=True, transform=transform) trainloader = torch.utils.data.DataLoader(trainset, batch_size=batch_size, shuffle=True) testset = torchvision.datasets.CIFAR10(root='./data', train=False, download=True, transform=transform) testloader = torch.utils.data.DataLoader(testset, batch_size=batch_size, shuffle=False) # 定义卷积神经网络 class Net(nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = nn.Conv2d(3, 6, 5) self.pool = nn.MaxPool2d(2, 2) self.conv2 = nn.Conv2d(6, 16, 5) self.fc1 = nn.Linear(16 * 5 * 5, 120) self.fc2 = nn.Linear(120, 84) self.fc3 = nn.Linear(84, 10) def forward(self, x): x = self.pool(torch.relu(self.conv1(x))) x = self.pool(torch.relu(self.conv2(x))) x = x.view(-1, 16 * 5 * 5) x = torch.relu(self.fc1(x)) x = torch.relu(self.fc2(x)) x = self.fc3(x) return x net = Net() # 定义损失函数和优化器 criterion = nn.CrossEntropyLoss() optimizer = optim.SGD(net.parameters(), lr=learning_rate, momentum=0.9) # 训练模型 for epoch in range(num_epochs): running_loss = 0.0 for i, data in enumerate(trainloader, 0): inputs, labels = data optimizer.zero_grad() outputs = net(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step() running_loss += loss.item() if i % 2000 == 1999: print(f'[{epoch + 1}, {i + 1:5d}] loss: {running_loss / 2000:.3f}') running_loss = 0.0 print('Finished Training') ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值