随手手册,希望对初学者有用,更适用于主技术栈非python,偶尔需要用python和pytorch的JYM的入门速查。
想从事AI方向的JYM,是绕不开Python和Pytorch,对于有经验的程序员来说,看如下三文,入门很是OK了,
当然在此前需要看看python的基础语法、数据类型等,但对于有经验的程序员来说这费不用多少时间了,语法都类似。
PyTorch + Anaconda3 + Pycharm 入门工程
LLM工具:Pycharm、PythonConsole及Jupyter比较与Jupyter安装与入门 —— 看比较部分即可
入门之后就到了具体学习,看视频 (文章底部有参考链接,并非广告,这个作者我也不认识,该文章与之相对是和者的学习总结)。 有了一遍视频学习之后,来一个速度手册, 便于快速恢复。 —— 这是笔者针对目前编程语言众多,各自占不同山头,程序员得知道多种语言技能的处理办法。
笔者在这类文章里贴出的代码会尽可能提供全注解,便于复查时快速恢复记忆中的代码片段、py语法结构等。
PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。
2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一个基于Python的可续计算包,提供两个高级功能: 具有强大的GPU加速的张量计算(如NumPy)。 包含自动求导系统的深度神经网络。
Dataset:pytorch提供一种方式去获取数据及其方式。
流程:先按规则组织数据集,再创建一个继承Dataset的类,来引用该数据集。
有关如何组织数据集可参考“附-数据集”部分内容; 目前笔者在想的是如何与有无监督学习关联起来。
数据集从杂乱无章的数据到神经网络训练可用的数据之间需要经过Dataset和DataLoader两个过程:
用Jupyter查看帮助-段落清晰
#1. 启动
jupyter node
#2. 打开浏览器
http://localhost:8888/
3. 点击右侧 [new] --> Python3 (ipykernel)
4. 在浏览器的控制台里输入
Dataset ??
# 或 ```help(Dataset) ```
输出
创建一个conda虚拟环境的工程,见PyTorch + Anaconda3 + Pycharm 入门工程
将数据复制一工程下
通过该数所集,我们知道:
以什么样的方式准备数据,见本章节的数据集
pip install pillow
pip install Image
# 也可以用cv2: pip install opencv-python
图片依赖包的介绍 CV2和PIL opencv原视频因为网络问题采用了PIL,笔者试了安装上了 pip install opencv-python
tip: 在编码过程中,如果需要对数据或路做测试,可以在pycharm中打开python console控制台操作,pycharm会根据输入自动显示对应类或包的属性方法也可以查看变量的返回值等,见 pycharm和Python常用操作 将鼠标放在pycharm的对应文件夹,用"CTRL+C”就可以将文件夹名称复制下来,配置数据路径时会用到
# 路径
import os.path
# 引入Dataset
from torch.utils.data import Dataset
# 图像操作库
from PIL import Image
# import cv2
# 继承:Dataset
class MyData(Dataset):
# 实始化函数
def __init__(self, root_dir, label_dir):
"""
根目录:root_dir
用目录标签:label_dir
"""
# 创建时给赋值的变量为全局变量 self.xxx
self.root_dir = root_dir
self.label_dir = label_dir
self.path = os.path.join(self.root_dir, self.label_dir)
self.img_path = os.listdir(self.path)
pass
def __getitem__(self, idx):
"""
返回一张图片
:param idx: 图片所有位置index 从0开始
:return: image对象与标签名
"""
# 得到文件名
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_dir
return img, label
def __len__(self):
"""
数据集长度
:return: 长度
"""
return len(self.img_path)
if __name__ == '__main__':
# 指定数据文件夹
root_dir = "data/train"
# 标签文件夹
ant_label_dir = "ants"
bees_label_dir = "bees"
# 某一种签检集
ants_dataset = MyData(root_dir, ant_label_dir)
bees_dataset = MyData(root_dir, bees_label_dir)
# 标签合集 - 拼接数据集
train_data = ants_dataset + bees_dataset
# 打印数据集长度
print(len(train_data))
输出结果
此种操作和java完全不同
dir(pytorch)
dir(pythorch.xxx)
help(Dataset)
输入指令,右侧自动显示类的属性、方法或数据
from PIL import Image
img_path = "data/train/ants/0013035.jpg"
img = Image.open(img_path)
img.show("my")
img.show()
dir_path = "data/train/ants"
import os
img_path_list = os.listdir(dir_path)
可以将整个程序块复制到控制台,模拟程序代码进行测试
Conda是运行在Windows、macOS和Linux上的开源软件包管理系统和环境管理系统。
Anaconda 主流的开源Python发行平台, 安装Anacoda会自动安装conda
Miniconda是一个免费的Conda最小安装程序。它是Anaconda的一个小型的引导版本,只包含conda、Python及它们所依赖的包和少量其他有用的包,比如pip、zlib和其他一些包。
PY的虚拟环境起到不同项目包版本隔离等的作用,现主流的虚拟环境有:
OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效 —— 由一系列C函数和少量 C++类构成,提供了Python、Ruby、MATLAB、java、cuda等语言的接口和机器学习的基础算法调用,实现了图像处理和计算机视觉方面的很多通用算法...(CV:Computer Vision,计算机视觉) 。
blog.csdn.net/weixin_4110…
安装的时候是 opencv_python,但在导入的时候采用 import cv2。
# 方法一:直接安装
pip install opencv-python
# 方法二 -- 官网下载安装.whl文件
# https://www.lfd.uci.edu/~gohlke/pythonlibs/#opencv
pip install opencv_python‑3.x.x‑cp36‑cp36m‑win_amd64.whl
# 方法三 -- conda环境安装:
conda install opencv-python
PythonWare公司提供了免费的图像处理工具包 PIL (Python Image Library), 该软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等...
blog.csdn.net/yohnyang/ar… Python图像处理库
安装
pip install pillow
pip install Image
使用
from PIL import Image ##调用库
...
im = Image.open("E:\mywife.jpg") ##文件存在的路径
im.show()
Pillow是PIL的替代版本,PIL 软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。
Pillow为了解决PIL的两个问题:
总结三种组织方式:
以下数据集展示的图片来自对教学的视频 规则也是笔者边学边记,如还有其他规则可以探讨
文件夹内的内容
文件夹展示形式 | 图片文件夹人容 | 标签文件夹内容 |
---|---|---|
![]() | ![]() | ![]() |
将数据集用另外一种表示,直接指明文件夹对应的数据类型。
适用于一种物种有较多数据类型的形式。
文件夹形式 | 图片文件夹 | 标签文件夹 | 标签内文件格式 |
---|---|---|---|
![]() | ![]() | ![]() | ![]() |
注意:图片文件夹中的文件名称与标签文件夹的名称有对应关系
[参考]
PyTorch深度学习快速入门教程
www.oschina.net/p/pil?hmsr=…
blog.csdn.net/m0_56729804…
blog.csdn.net/m0_51864191…
阅读量:2013
点赞量:0
收藏量:0