帖子

《深度学习基础》学习笔记分享园地 | 讯飞AI大学

  [复制链接]
177****4271 发表于 2020-7-19 23:19:52
51#
列表可以理解成列表清单第一个是  第二个是  第几个就是它的索引,第二个写错了,我们将它改成正确的。我们可以对列表元素进行修改,删除和增加。
列表可以容纳任意数据类型的有序集合。我们可以通过索引访问其中的元素。
列表可以容纳任意数据类型的数据。
列表可以容纳字符串,浮点数,整数集合,字典,元组 列表。
有序集合。集合里的元素可以根据key或index访问。
无序集合。集合里的元素只能遍历。

使用道具 举报 回复
samurai 发表于 2020-7-19 23:40:57
52#
Day3+学习笔记+7/19
张量:向量和矩阵的推广,标量可以看作0维张量,向量可以看作1维张量,矩阵可以看作二维张量,图像数据集可以抽象为4维张量

框架可以实现的张量操作:矩阵乘法、卷积、 池化
计算图:把张量和基于张量的操作整合起来
自动求导:通过梯度下降来更新参数
神经网络原理总结:
目标:找到正确的权重
评价指标:损失函数
方法:优化算法+反向传播算法

使用道具 举报 回复
186****1186 发表于 2020-7-20 10:48:33
53#

#Day 6+学习笔记+07/20
【流程控制】
判断语句
       简单if语句(使用条件测试):if, 四个空格
       if else语句
       if elif else语句
循环语句
       while循环语句
       for循环语句:和range搭配

使用道具 举报 回复
152****5289 发表于 2020-7-20 16:10:02
54#
#Day6+学习笔记+ 07/20
1.pytorch特点:简洁、速度、易用、易调试
2. 安装测试
condainstall Pytorch-cpu torchvision-cpu -c Pytorch
importtorch
x=torch.rand(5,3)
print(x)
3. 数据预处理工具torchvision:Torchvision是一个图像操作工具库
  • 数据处理
  • 数据导入
  • 数据预览
4. 安装torchvision
  • Anaconda:condainstall torchvison -c pytorch
  • pip: pipinstall torchvision
5. torchvision主要包括以下三个部分
  • 模型models
  • 数据集datasets
  • 数据预处理操作transforms
6. transforms可以解决:数据类型转换与增强
  • 标准化:transforms.Normalize
  • 转为tensor,并归一化至[0-1]transforms.ToTensor
  • 将数据转换为PILImagetransforms.ToPILImage
  • 对载入的图片数据大小进行缩放:transforms.Resize
  • 对载入的图片进行裁剪:transforms.CenterCrop

使用道具 举报 回复
136****0421 发表于 2020-7-20 19:29:08
55#
连续学习两节课,因为来不及。
安装阿那康纳选择环境变量,复制链接至path。期待第四节课。
day2/day3
批注 2020-07-20 192217.png
批注 2020-07-20 191959.png
批注 2020-07-19 164917.png
使用道具 举报 回复
189****7368 发表于 2020-7-20 20:13:19
56#
181****8100 发表于 2020-7-15 15:24
我为什么发不了图片?

要上传,它说上传成功了才行
使用道具 举报 回复
159****5298 发表于 2020-7-20 21:45:55
57#
Day 2 深度学习路线


微信图片_20200720214257.jpg
使用道具 举报 回复
159****5298 发表于 2020-7-20 21:50:42
58#
Day 3+学习笔记+07/20


微信图片_20200720214836.jpg
使用道具 举报 回复
samurai 发表于 2020-7-20 22:06:09
59#
Day4+学习笔记+7/20
实现了一个简单的Lenet模型:
  1. import torch
  2. import torch.nn as nn
  3. import time
  4. from torch.utils.data import DataLoader
  5. from torchvision.datasets import MNIST
  6. from torchvision import transforms
  7. from torch import optim

  8. def loadMNIST(batch_size):# MNIST图片的大小是28*28
  9.     # 加载数据函数
  10.     trans_img = transforms.Compose([transforms.ToTensor()])
  11.     trainset = MNIST('./data',train=True,transform=trans_img,download=True)
  12.     testset = MNIST('./data',train=False,transform=trans_img,download=True)
  13.     trainloader = DataLoader(trainset,batch_size=batch_size,shuffle=True,num_workers=10)
  14.     testloader = DataLoader(testset,batch_size=batch_size,shuffle=False,num_workers=10)
  15.     return trainset,testset,trainloader,testloader

  16. # 定义Lenet卷积神经网络
  17. class Lenet(nn.Module):
  18.     def __init__(self):
  19.         super(Lenet,self).__init__()
  20.         layer1 = nn.Sequential()
  21.         layer1.add_module('conv1',nn.Conv2d(1,6,5,padding=1))
  22.         # 第一层是卷积神经网络,输入是1张图像,输出是6张特征图,卷积核是5*5,填充为1
  23.         layer1.add_module('ac1',nn.ReLU())
  24.         # 激活函数为ReLU
  25.         layer1.add_module('pool1',nn.MaxPool2d(2,2))
  26.         # 2*2的池化层
  27.         self.layer1 = layer1
  28.         
  29.         layer2 = nn.Sequential()
  30.         layer2.add_module('conv2',nn.Conv2d(6,16,5,padding=1))
  31.         # 输入是6个通道输出是16个特征图
  32.         layer2.add_module('ac1',nn.ReLU())
  33.         layer2.add_module('pool2',nn.MaxPool2d(2,2))
  34.         self.layer2 = layer2
  35.         
  36.         # 全连接,优化提取参数
  37.         layer3 = nn.Sequential()
  38.         layer3.add_module('fc1',nn.Linear(400,120))
  39.         layer3.add_module('ac1',nn.ReLU())
  40.         layer3.add_module('fc2',nn.Linear(120,84))
  41.         layer3.add_module('ac2',nn.ReLU())
  42.         layer3.add_module('fc3',nn.Linear(84,10)) # 提取完之后可以得到对应0、1、2...9的10个参数
  43.         self.layer3 = layer3
  44.         
  45.     def forward(self,x):
  46.         x = self.layer1(x)
  47.         x = self.layer2(x)
  48.         x = x.view(x.size(0),-1)
  49.         x = self.layer3(x)
  50.         return x

  51. if __name__ == '__main__':
  52.     t_start = time.time()
  53.     learning_rate = 0.001 # 学习率为0.001
  54.     batch_size = 200 # 一次读入200个数据到神经网络
  55.     epoches = 50 # 训练50次
  56.     lenet = Lenet()
  57.     trainset,testset,trainloader,testloader = loadMNIST(batch_size)
  58.     criterian = nn.CrossEntropyLoss(reduction='sum') # 求和的方式计算Loss
  59.     optimizer = optim.SGD(lenet.parameters(),lr=learning_rate)
  60.     for i in range(epoches):
  61.         running_loss = 0.
  62.         running_acc = 0.
  63.         for (img,label) in trainloader:
  64.             optimizer.zero_grad()# 求梯度之前对梯度清零以防梯度累加
  65.             output = lenet(img) # 向前计算网络输出值
  66.             loss = criterian(output,label) # 计算loss值
  67.             loss.backward() # loss反传存到相应的变量结构中
  68.             optimizer.step() # 使用计算好的梯度对参数进行更新
  69.             
  70.             running_loss += loss.item()
  71.             valu,predict = torch.max(output,1)
  72.             correct_num = (predict==label).sum()
  73.             running_acc += correct_num.item()
  74.         
  75.         running_loss /= len(trainset)
  76.         running_acc /= len(trainset)
  77.         t_now = time.time()
  78.         time_spend = t_now - t_start
  79.         print("[%d/%d] Loss:%.5f, Acc:%.2f,Time:%.2f" % (i+1,epoches,running_loss,100*running_acc,time_spend))
复制代码



使用道具 举报 回复
188****9823 发表于 2020-7-20 22:15:28
60#
#DAY 6 学习笔记 07/20 柒
微信图片_20200720221128.png

使用道具 举报 回复