李宏毅 深度学习【持续更新】
目录
- pytorch快速入门
- csdn快速入门
- OS包
- PIL包
- Opencv包
- Dataset类
- Tensorboard的使用
- torchvision.transforms 的使用
- torchvision中数据集的使用
- DataLoader的使用(torch.utils.data)
- 神经网络的搭建nn.Module
- 深度学习 李宏毅
- Chatgpt
- 1 研究方向
- 2 Chatgpt学习的步骤
- 3 Fine tune vs. Prompt
- 期待一 |成为专才, 加外挂 or fine tune or Adapter
- 期待二|成为通才
- chain of thought (COT )Promptting
- [一、 Regression回归](https://youtu.be/fegAeph9UaA)
- Overfitting and Regularization
- 误差error是哪里来的?——寻找调整方法
- 注意不要这样做!——数据集的划分
- Gradient Descent
- 1. learning rate 的调整
- 2 SGD 随机梯度下降(Stochastic Gradient Descent
- 3 Feature Scaling 特征缩放
- 4 数学原理
- 5 GD的一些限制limitation
- 二、Classification 分类
- 2.1 生成式模型(generative *model*)
- 2.1.1协方差矩阵(Covariance Matrix)
- 2.2 逻辑回归 判别式模型(*discriminative* model)
- 2.2.1 function set
- 2.2.2 Goodness of function 好坏
- 2.2.3 find the best function 寻找参数
- 2.3 辨别模型VS生成模型
- 2.4 Multi-class Classification
- 2.5Limitation of Logistic Regression
- 2.5.1 f eature transformation
- 三、DL 深度学习简介
- 3.1 DL的步骤
- 3.1.1 Fully Connected Feedforward Network 全连接前向传播神经网络、前馈神经网络
- 3.1.2 定义一个function goodness 好坏— cross entropy 交叉熵
- 3.2 Backpropagation 反向传播
- 3.2.1 Chain Rule 链式求导
- 3.2.2 BP过程推导
- 3.3 机器学习任务攻略
- 3.3.1 在training data 上loss 过大? 过小?
- 3.3.2 N-fold Cross Validation
- 3.4 神经网络训练不起来怎么办?
- 3.4.1 local minima 局部最小值和 saddle point 鞍点
- 3.4.2 批次batch
pytorch快速入门
csdn快速入门
https://blog.csdn.net/PolarisRisingWar/article/details/116069338
- 工具箱dir() 、help() 或者 类名??、 ipython交互式操作
- pycharm 的好处就是可以看到实时变量的值
OS包
- os.path.join() 拼接路径
- os.listdir( ) 返回目录下的文件列表
PIL包
- from PIL import Image 导入
- Image.open(path) 读取图片,读出的图片类型是JepgImageFile类型
- img.show() 显示
Opencv包
- import cv2
- cv2.imread() 读出的图片类型是numpy
Dataset类
自定义的data类要继承Dataset类
self相当于一个全局变量,以便类中每个函数共享使用,否则就不需要写
eg 数据集url蚂蚁蜜蜂分类数据集和下载连接https://download.pytorch.org/tutorial/hymenoptera_data.zip
from torch.utils.data import Dataset from PIL import Image import os class MyData(Dataset):def __init__(self,root_dir,label_dir):self.root_dir = root_dirself.label_dir = label_dirself.path = os.path.join(self.root_dir,self.label_dir)self.img_path=os.listdir(self.path)#img_path='/Users/fanzhilin/Downloads/hymenoptera_data/train/ants/0013035.jpg'def __getitem__(self,idx):img_name = self.img_path[idx]img_item_path = os.path.join(self.root_dir,self.label_dir,img_name)img =Image.open(img_item_path)label = self.label_dirreturn img,labeldef __len__(self):return len(self.img_path)ants_dataset =MyData('/Users/fanzhilin/Downloads/hymenoptera_data/train','ants') print(len(ants_dataset))#ants训练集长度
Tensorboard的使用
需要先转换成tensor类型才能显示
add_scalar()
eg 画出y=2x图
from torch.utils.tensorboard import SummaryWriterwriter = SummaryWriter("logs")# 放在当前目录logs目录,可以自己改名字# 画出 y =2x
for i in range(100):writer.add_scalar("y=2x",2*i,i) writer.close()
打开logs文件,在终端运行 tensorboard --logdir=logs ,也可以指定端口–port 6007, 便可以通过网页访问
- add_image()、add_images()一次添加多个图片
查看def,需要传入 (torch.Tensor, numpy.array, or string/blobname)类型的y轴数据,需要把图片类型转换一下,从PIL到numpy arrary,需要传入参数dataformats=‘HWC’ 指定每一维的含义
eg
from torch.utils.tensorboard import SummaryWriter
import numpy as np
from PIL import Imagewriter = SummaryWriter("logs")
img_path="/Users/fanzhilin/Downloads/hymenoptera_data/train/ants/0013035.jpg"
img_PIL =Image.open(img_path)
img_arrary = np.array(img_PIL)
print(img_arrary.shape)
writer.add_image("ant",img_arrary,1,dataformats='HWC')#从PIL到numpy arrary,需要传入参数dataformats='HWC' 指定每一维的含义# 画出 y =2x
for i in range(100):writer.add_scalar("y=2x",2*i,i) writer.close()
torchvision.transforms 的使用
就是一个工具箱
使用注意点⚠️
ToTensor类 ,为什么需要转换?包含了一些dl的参数
Normalize类,归一化
Resize类
transforms.Resize(x)等比例缩放,将图片短边缩放至size,长宽比保持不变,i.e,如果高度>宽度,则图像将被重新缩放为(size*高度/宽度,size)将图片短边缩放至x,长宽比保持不变 transforms.Resize(x)
Compose 就是将函数进行组合,需要提供一个转换的列表,相对应合并执行
RandomCrop 随机裁剪 ,用于数据增强
from torchvision import transforms from PIL import Image from torch.utils.tensorboard import SummaryWriter img_path="/Users/fanzhilin/Downloads/hymenoptera_data/train/ants/0013035.jpg" img=Image.open(img_path) writer=SummaryWriter("logs")#ToTensor trans_tensor = transforms.ToTensor()# 创建对象 img_tensor=trans_tensor(img)#变为tensor writer.add_image("Totensor",img_tensor,0 )#Normalize print(img_tensor[0][0][0]) trans_norm = transforms.Normalize([0.5,0.5,0.5],[2,1,1]) img_norm=trans_norm(img_tensor) print(img_norm[0][0][0]) writer.add_image("Normalize",img_norm,0 )#Resize print(img.size) trans_resize=transforms.Resize((512,512)) img_resize = trans_resize(img)#PIL 类型 img_resize=trans_tensor(img_resize)#想要在tensorboard显示需要变成tensor类型 writer.add_image("Resize",img_resize,0) print(img_resize.size())# Compose resize 结合 trans_resize2 = transforms.Resize(512) trans_compose = transforms.Compose([trans_resize2,trans_tensor]) img_resize2 = trans_compose(img) writer.add_image("Resize",img_resize2,1)#RandomCrop trans_random=transforms.RandomCrop(400) #(h,w)传入也可以 trans_compose2= transforms.Compose([trans_random,trans_tensor]) for i in range(10):#随机裁剪10个img_crop = trans_compose2(img)writer.add_image("RandomCrop",img_crop,i)writer.close()
torchvision中数据集的使用
datasets
官网数据集https://pytorch.org/vision/stable/datasets.html
可以吧url拷贝,用迅雷下载
import torchvision dataset_trans=torchvision.transforms.Compose([torchvision.transforms.ToTensor()]
)#把数据集每一个全变成tensor,方便使用tensorboard显示
train_set = torchvision.datasets.CIFAR10(root='./dataset',train=True,transform=dataset_trans,download=True)
test_set = torchvision.datasets.CIFAR10(root='./dataset',train=False,transform=dataset_trans,download=True)
#如果root没有目录会自动建立,建议设置download=true,如果没有回下载到本地,并且会自动解压
print(train_set[0])#第一条
print(train_set.classes)#labelimg,traget=train_set[0]#打印查看格式,前一个是img,后一个是label
print(img)
print(traget)
print(test_set.classes[traget])
img.show()
DataLoader的使用(torch.utils.data)
类似抽牌
import torchvision
from torch.utils.data import DataLoader
from torch.utils.tensorboard import SummaryWriter
test_data = torchvision.datasets.CIFAR10(root='./dataset',train=False,transform=torchvision.transforms.ToTensor())test_loader = DataLoader(dataset=test_data,batch_size=4,shuffle=True,num_workers=0,drop_last=False)
#batch_size = 4 从dataset取4个数据,打包返回
#shuffle = True 每次抽取都是随机的
#drop_last=False,最后一次取如果不够取不舍去
img,target = test_data[0]
print(img.shape)
print(target)writer = SummaryWriter("dataloader")for epoch in range(2):step=0for data in test_loader:imgs,targets = data# print(imgs.shape)#打包返回的数据torch.Size([4, 3, 32, 32]) 4数据 3通道rgb h w# print(targets)#tensor([5, 9, 2, 4]) 是label writer.add_images("Epoch :{}".format(epoch),imgs,step)step=step+1writer.close()
神经网络的搭建nn.Module
Eg 简单的nn
from torch import nn
import torch.nn.functional as F
import torch
class Model(nn.Module):def __init__(self):super().__init__()
#nn.module内的call方法里调用了forward,通过打断点也可以知道!def forward(self,input):return input+1nn1=Model()
x= torch.tensor(1)
print(nn1(x))
卷积操作
深度学习 李宏毅
2022太乱了,去youtube看2020了,妈的没弹幕看着难受
http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML20.html
python 多环境管理pyenv
https://github.com/pyenv/pyenv
https://zhuanlan.zhihu.com/p/36402791
Chatgpt
1 研究方向
1如何精准提出需求
- 如何调教
2 如何更正错误
- chatgpt的预训练资料只有2021年9月之前的
- 如何让机器修改一个错误而不弄错别的地方?——Neural editing
3 判断是否ai生成的物件
4是否会泄漏隐私
- 但是可以绕着弯问他,当问到一定特定问题,让机器忘记Machine Unlearning
2 Chatgpt学习的步骤
由InstructGPT 推测
1学习文字接龙,学到的是几率分布,然后随机抽取一个词出来。但实际每次输出的结果都不同
GPT在网络上大量搜集网络数据,不需要人介入
2人类来引导接龙的方向,并提供正确答案,
3模仿人类的喜欢
4用增强式学习 强化学习学习 reward
3 Fine tune vs. Prompt
两个方向:成为通才 或 专才
所有自然语言处理的问题都是 问答QA的问题
https://arxiv.org/abs/1806.08730
让chatgpt自己说说如何针对特定任务产生prompt
期待一 |成为专才, 加外挂 or fine tune or Adapter
BERT,类似文字填空的模型
对预训练模型进行改造
加外挂Head
微调参数 fine tune
…
微调Adapter 的参数( efficient finetune)
语言模型本身不动,只finetune微调adapter参数
期待二|成为通才
in-context learning 范例学习
- 可能范例学习只对大型模型有明显效果
题目叙述学习Instruct learning、 instruction tuning
T0模型
FLAN paper
chain of thought (COT )Promptting
在给机器范例同时,顺便给出推论过程,给出答案
zero - shot COT 甚至直接可以一句话:Lets think step by step
有的时候人也不知道解答的过程是什么
Self—consistency 解决每次结果都不一样
Leat - to - most promptting
把复杂的问题拆解,把难的问题简化,看到数学问题,让机器做in context learing
让机器找prompt
soft prompt 我们给机器的prompt 是向量,可以train,类似于adapter
用reinforcement learning
直接用大型LM 去自己找prompt
把输入 输出 给他 ,让LM去给出prompt ,自己催眠自己
李宏毅 深度学习【持续更新】相关推荐
- 李宏毅深度学习作业二
任务说明 Binary classification is one of the most fundamental problem in machine learning. In this tutor ...
- 2020李宏毅深度学习hw1
2020李宏毅深度学习hw1 1.导入包 import sys import pandas as pd import numpy as np 2.加载数据 data = pd.read_csv('tr ...
- 李宏毅深度学习视频摘要
视频地址 李宏毅深度学习(nlp)2017 视频摘要 P1 讲了RNN,LSTM ,GRU网络构造 P2 讲了卷积的原理,pooling的原理,已经不太常规的poolling方法.另外提到一种特殊的R ...
- [2022]李宏毅深度学习与机器学习第四讲(选修)-GNN
[2022]李宏毅深度学习与机器学习第四讲(选修)-GNN 做笔记的目的 GNN NN4G DCNN MoNET GTA GIN 做笔记的目的 1.监督自己把50多个小时的视频看下去,所以每看一部分内 ...
- [2022]李宏毅深度学习与机器学习第十二讲(必修)-Reinforcement Learning RL
[2022]李宏毅深度学习与机器学习第十二讲(必修)-Reinforcement Learning RL 做笔记的目的 What is RL Policy Gradient Version 1 Ver ...
- 李宏毅深度学习笔记——呕心整理版
李宏毅深度学习笔记--呕心整理版 闲谈叨叨叨: 之前看过吴恩达的一部分课程,所以有一定理论基础,再看李宏毅的课程会有新的理解.我先以有基础的情况写完学习过程,后续再以零基础的角度补充细节概念(估计不会 ...
- [2022]李宏毅深度学习与机器学习第六讲(必修)-GAN
[2022]李宏毅深度学习与机器学习第六讲(必修)-GAN 做笔记的目的 GAN generator Unconditional generator Theory Behind Tips for GA ...
- 李宏毅深度学习HW7
李宏毅深度学习---HW7 1.任务介绍 2.数据集 3.词语划分 为什么长段落是一个问题? 4.训练数据窗口划分 5.测试数据窗口划分 6.提示 (1)线性学习速率衰减 (2) stride (3) ...
- [2022]李宏毅深度学习与机器学习课程内容总结
[2022]李宏毅深度学习与机器学习课程内容总结 课程感受 第一讲必修 ML的三个步骤 第一讲选修 深度学习发展趋势 反向传播 从线性模型到神经网络 为什么要用正则化技术 为什么分类是用交叉熵损失函数 ...
- 【李宏毅深度学习CP10】Self-attention(part1)
学习心得 (1)传统的Attention是基于source端和target端的隐变量(hidden state)计算Attention的,得到的结果是源端的每个词与目标端每个词之间的依赖关系.但Sel ...
最新文章
- mcDropdown使用方法
- Linux上的free命令详解
- Delphi的内存管理及内存泄露问题
- document.body ,window.screen javascript对象属性取值意义
- 正则表达式的特殊符号和字符详细解析
- Freenom.com的域名+github pages+netlify的CDN加速
- c# 2.0实现摄象头视频采集,拍照,录象
- 虚拟化精华问答 | 虚拟化技术分类
- 基于java+springboot+layui的流浪动物交流信息平台设计实现
- Spring Boot实践
- 处理页面动态加载数据
- 解决applet覆盖遮罩层div的问题
- HTML前端在线购书商城,基于HTML css的商城购物前端模板
- 掌握 Microsoft Excel 宏和 Excel VBA
- android真机调试工具,ADB 安卓真机调试工具
- 2020.04.07 Windows 10 一次系统蓝屏的修复过程
- Microsoft SQL Server Native Client(sqlncli.msi)的安装程序包
- linux 服务器 安装网卡驱动,Linux系统下安装Intel千兆网卡驱动
- 周边pd是什么意思_韩国综艺里经常说的VJ、PD是什么意思
- bind函数怎么用JAVA_socket编程之bind()函数
热门文章
- 感情这种事 即便是网恋也不能输!
- 中国军工产业发展规划及前景战略研究报告2021-2027年
- Ray入门指南(1)----ray分布式框架的介绍
- 五年后计算机专业还会吃香吗,未来5年的紧缺职业 五年后最吃香的专业有哪些?...
- 鸿蒙os去广告,隐藏福利?华为鸿蒙OS新惊喜:优酷视频流转播放可免广告
- 三星5亿美元再建液晶模组厂 广深抛绣球
- 戒烟-这书能让你戒烟pdf
- 2014校园招聘_百度2014校园招聘
- 如何在WordPress中添加Pinterest“ Pin It”按钮(最终指南)
- 麻省理工计算机科学录取条件,美国麻省理工学院录取条件
- 李宏毅深度学习作业二