pytorch

大象笔记 > 标签 > pytorch

Windows 11 安装 PyTorch

安装 conda 从介绍来看 conda 是一个比 pip 更强大的包管理工具,除了支持 python 的包管理也支持其他语言。 https://conda.io/projects/conda/en/latest/user-guide/install/windows.html 里面有两个安装包 Miniconda 和 Anaconda,如何选择呢? Miniconda installer = Python + conda (即内置了 Python 安装包,非常方便) Anaconda installer = Python + conda + meta package anaconda 大概 ...

阅读全文...

PyTorch 学习计划及相关学习资料

之前用 OpenCV 实现的一个小麦图像识别的 Android APP,但是做到第二版时, 想增加功能,发现大部分类似项目都是用 PyTorch 实现的,所以不得不换技术方案。 可是断断续续看了一个多月的 PyTorch,发现自学效果不佳,连代码都没怎么写。 可能都是在等车,或者车上看的,没有实际敲代码,所以理解不深。 PyTorch 市面上的书籍非常多,但我看的几本口碑不错的书,都是虎头蛇尾。 前面讲的挺细致,比如基础概念、一些原理之类的,还能接受。 但是,一旦到了解决实践问题的章节,需要大量代码说明的部分,就完全滥竽充数。 也不知道是为了水一本书,还是里面确实有核心的业务逻辑不舍得分享, ...

阅读全文...

PyTorch 基础概念 - 张量 Tensors

无论是 PyTorch 还是 TensorFlow,我们首先都会遇到一个基础概念,张量 (Tensor)。 张量 (Tensor) 的作用 模型 (Model) 的输入和输出都是用张量 (Tensor) 表示的。 张量 (Tensor) 是什么 张量 (Tensor) 就是一种数据结构,类似数组 (array),矩阵 (matrix),向量 (vector)。 更形象地理解张量 (Tensor) 例如,如果我们要做一个二手车价格预测模型 (Model),那么如何表示一辆二手车呢? 就可以用一个一维数组来表示,每个元素代表: 生产年份 形式里程数 品牌 事故数 是否泡水过 等等。 也就是,用 ...

阅读全文...

PyTorch 基础概念 - 数据集 Dataset

Datasets and Dataloaders Dataset (torch.utils.data.Dataset) 存储了样本及其对应的标签。 DataLoader (torch.utils.data.DataLoader) 方便访问 Dataset。 Dataset 的类型 图片 文本 音频 等等。 现成的 Dataset 有哪些 例如, FashionMNIST。 >>> from torchvision import datasets >>> dir(datasets) ['CIFAR10', 'CIFAR100', 'CLEVRClass ...

阅读全文...

神经网络 (neural network) 概念

在 PyTorch 的教程及书籍中,经常会看到神经网络这个词。 英文是:neural network。 neural 是个形容词,神经的,神经系统的。中文发音:呢若 / 牛若。 代码中也常见到 torch.nn # 或者是 from torch import nn nn 即是 neural network 的缩写。 神经网络是由一堆神经元(neuron)组成。神经元以层(layer)的形式组织起来。 神经网络的作用 简单来说,一个神经网络就是一套算法,自动推导出输入数据与其对应的输出数据(结果)之间的关系。 举个例子,假如你有一套数据集,里面记录了历年的高考成绩,所在省份,及填报志愿的学校 ...

阅读全文...

新建一个神经网络,方式一,基于 torch.nn.Sequential

构建神经网络的两种方式 PyTorch 有两种构建神经网络的方式: 简单粗暴式:使用 torch.nn.Sequential 类,初始化时,传入一系列操作 (operation) 通用式:定义 torch.nn.Module 的子类 由于涉及的新概念非常多,所以拆分成两个笔记。这里就先了解一下第一种方式。 torch.nn.Sequential https://pytorch.org/docs/stable/generated/torch.nn.Sequential.html CLASS torch.nn.Sequential(*args: Module) CLASS torch.nn.S ...

阅读全文...

如何判断当前电脑上的 pytorch 是否支持 CUDA

CUDA CUDA 是 Nvidia GPU 提供的软件 API。 查看显卡型号 Windows 11,我的电脑 - 右键属性 - 设备管理器 - 显示适配器 例如,我这个 Dell 台式机是: NVIDIA GeForce GT 710 Intel(R) UHD Graphics 630 而我的笔记本则是 AMD 的显卡。 这些 GPU 都不支持 CUDA,GT 710 则是因为太老,也不支持。 查看 pytorch 是否支持 CUDA > python Python 3.10.9 Type "help", "copyright", &quo ...

阅读全文...

YOLO v5 PyTorch 训练数据标注文件 YAML 格式

从 roboflow 标注数据之后,导出的 YOLO v5 PyTorch 配置文件 YAML 格式 (TXT annotations and YAML config used with YOLOv5),里面的文件路径非常不友好,每次都需要修改调整。 特别是要上传到 colab 训练,在 google drive 里在线修改 yaml 文件非常麻烦。因为为了防止 Exception: Dataset not found 我都是用的绝对路径。 我的疑问是,是否存在一种路径组织方式可以同时满足本地和线上 (colab / kaggle),不需要来回改本地绝对路径。 周末陪我妈在毓璜顶医院排队做 ...

阅读全文...

yolo v5 导出 Android 手机上可以运行的 TFLite 模型

TFLite 是 TensorFlow Lite 的缩写。TFLite 在 Android 上的运行速度更快,因为它专门针对移动设备进行了优化。但是,最后我发现我实在找不到在 Android 上执行 yolov5 TFLite 模型的示例,转而使用 pytorch mobile 的 torchscript lite 模型实现了在 Android 上的目标检测。 虽然没有在 Android 上用 tflite 模型实现功能,但是记录一下导出 tflite 模型的操作方法。 导出命令 python export.py --weights yolov5s.pt --include tflite ...

阅读全文...

yolov5 pytorch mobile 模型导入 Android,实现图片目标检测

由于 yolov5 相关的 TensorFlow Lite 示例代码太少,而且都是旧版本的示例,导致我完全不知道怎么上手。 所以转投 pytorch mobile 的方案,主要是 facebook 官方的示例代码非常完整,且清晰明了,容易修改。 再就是国内 Android 手机普遍不能使用 google play 的服务,所以 TensorFlow lite 安装包小的优势也就没有了。至于性能,暂时没有要求,而且实测来看,pytorch mobile 的识别速度就非常快,几乎瞬间完成,没有做计时,估计也是几十毫秒的范围,已经很满意了。 识别效果 以识别照片中小麦穗数量为例: 导出 pytor ...

阅读全文...

yolov5 模型导入 Android 后编译的 apk 文件体积巨大

参考前文,用 yolov5 的 pytorch torchscript lite 模型开发了一个多物体检测的 Android APP。 调试完成之后,进行编译打包 Generate Signed Bundle/APK。 然而,编译后的 APK 文件大小让我大吃一惊,足足有 240M。 使用 Android Studio 自带的 Build - Analyze APK 功能的分析结果: 好在不是面向 C 端的产品,否则估计没有几个人愿意下载这么大的 App,仅仅为了一个图像识别功能。 巨大的 apk 文件 torchscript lite 模型 model 文件大小:23M libpytor ...

阅读全文...

将 yolov5 内置模型导出为 pytorch mobile 格式

Google Colab 地址 使用 Colab 能利用 Google 免费提供的 GPU 资源,快速进行模型训练。比在我的弱鸡笔记本上训练,能节省大量时间。 在 Colab 上新建一个项目 https://colab.research.google.com 或者可以考虑继续沿用之前的项目。 安装 yolov5 新建一个代码块 #clone YOLOv5 and !git clone https://github.com/ultralytics/yolov5 # clone repo %cd yolov5 %pip install -qr requirements.txt # install ...

阅读全文...