深度学习复盘与论文复现D

news2024/11/11 18:10:42

文章目录

  • 一、新环境搭建与适应
    • 1、easy_install和pip的安装使用
    • 2、关于安装包超时的解决方案
    • 3、brew安装包安装
    • 4、使用新环境运行以前项目
    • 5、解决win的pycharm修改内存后无法启动
  • 二、Dataset 数据读取问题
    • 1、Lightning Torch 读取数据
    • 2、Pytorch的DataLoader数据读取机制
    • 3、Pytorch的Dataset数据读取机制
    • 4、Torch数据读取补充
  • 三、林学长的小项目运行
    • 1、module 'numpy.typing' has no attribute 'NDArray'
    • 2、关于torch 和cuda 不匹配问题
    • 3、ValueError: too many values to unpack
    • 4、彩蛋 计算机期刊指标汇总

在这里插入图片描述

一、新环境搭建与适应

1、easy_install和pip的安装使用

在这里插入图片描述
mac zsh: command not found: pip解决方法

1️⃣首先运行如下指令

curl https://bootstrap.pypa.io/pip/get-pip.py -o get-pip.py

在这里插入图片描述

/Users/zhihongli/Library/Python/3.9/bin

2️⃣根据警告信息替换如下(实际是修改环境变量目录过程)

echo 'exportPATH=/Users/zhihongli/Library/Python/3.9/bin:$PATH' >>~/.bashrc

在这里插入图片描述
3️⃣最后执行以下命令进行保存

source ~/.bashrc

在这里插入图片描述


在这里插入图片描述

2、关于安装包超时的解决方案

在这里插入图片描述

pip --default-timeout=100 install -U 包名

在这里插入图片描述

  • 简单粗暴,直接安装Numpy、Pandas,亲测高效(终极方法)

在这里插入图片描述

3、brew安装包安装

1️⃣执行如下关键命令

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

在这里插入图片描述

https://github.com/Homebrew/brew/releases/tag/4.1.4

在这里插入图片描述

https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/

在这里插入图片描述

2️⃣终于安装成功

在这里插入图片描述

在这里插入图片描述

4、使用新环境运行以前项目

在这里插入图片描述

5、解决win的pycharm修改内存后无法启动

  • 在pycharm中改了最大堆大小以后打不开。当初修改的是破解工具的.vmoptions文件,用破解工具把它重新覆盖到合适的地方。

①在此电脑右键属性–> 打开控制面板
②选择高级系统设置中的环境变量

在这里插入图片描述

二、Dataset 数据读取问题

1、Lightning Torch 读取数据

  • 参考官方链接🔗如下

在这里插入图片描述

https://pytorch.org/docs/stable/data.html

在这里插入图片描述

https://lightning.ai/docs/pytorch/stable/data/datamodule.html

在这里插入图片描述

https://pytorch.ac.cn/tutorials/beginner/basics/data_tutorial.html

在这里插入图片描述

2、Pytorch的DataLoader数据读取机制

在这里插入图片描述

数据模块中,DataLoader和DataSet就是数据读取子模块中的核心机制。数据读取主要包含以下 3 个方面:

  • 读取哪些数据:每个 Iteration 读取一个 Batchsize 大小的数据,每个 Iteration 应该读取哪些数据。
  • 从哪里读取数据:如何找到硬盘中的数据,应该在哪里设置文件路径参数
  • 如何读取数据:不同的文件需要使用不同的读取方法和库

在这里插入图片描述

  • DataLoader的用于构建数据装载器, 根据batch_size的大小, 将数据样本分成若干batch去训练模型,而数据分配的过程需要读取数据,这个过程就是借助Dataset的getitem方法实现的。

  • 也就是说要使用Pytorch读取数据,首先应该新建一个类MyDataset,这个类要继承Dataset类并且实现里面的getitem__方法,该方法用于定义如何接收一个索引idx, 返回一个样本对应的data和label。 此外还需要实现__len,该方法用于计算样本数据,__len__返回总的样本的个数。

一. torch.utils.data.Dataset

  • 是一个抽象类, 自定义的Dataset需要继承它并且实现两个成员方法:
 def __getitem__(self, index):
        img_path, label = self.data[index].img_path, self.data[index].label
        img = Image.open(img_path)

        return img, label
def __len__(self):
        return len(self.data)

由于DataLoader是一个可迭代对象,当构建完成后可以简要查看读取的数据,以验证数据格式。

在这里插入图片描述

  • 功能:构建可迭代的数据装载器。训练的过程中,每一次iteration从DataLoader中获取一个batch_size大小的数据

在这里插入图片描述

Epoch、Iteration、Batchsize之间的关系:

1:所有的样本数据都输入到模型中,称为一个epoch

2:一个Batch的样本输入到模型中,称为一个Iteration

3:一个批次的大小,一个Epoch=Batchsize*Iteration

3、Pytorch的Dataset数据读取机制

在这里插入图片描述
功能:用来定义数据从哪里读取以及如何读取。Dataset抽象类,所有自定义的Dataset需要继承它,并且复写

在这里插入图片描述


4、Torch数据读取补充


再推荐阅读这些文章

  • pytorch使用DataLoader对数据集进行批处理简单示例

https://www.cnblogs.com/JeasonIsCoding/p/10168753.html

  • dataloader使用教程

https://www.jianshu.com/p/8ea7fba72673

  • pytorch数据读取

https://zhuanlan.zhihu.com/p/30934236

三、林学长的小项目运行

项目接手时间:24.7.13

1、module ‘numpy.typing’ has no attribute ‘NDArray’

  • 估计是numpy 的版本问题
  • 还有就是numpy和pandas版本不对应
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

pip install numpy==1.21 -i https://pypi.tuna.tsinghua.edu.cn/simple

2、关于torch 和cuda 不匹配问题

在这里插入图片描述

pip install torch==2.3.1

在这里插入图片描述

import torch
print(torch.__version__)
print(torch.cuda.is_available())

再者查看cuda是否可以用
在这里插入图片描述

可用安装镜像解决下载慢问题
在这里插入图片描述

3、ValueError: too many values to unpack

在这里插入图片描述在这里插入图片描述

 for idx, (X, Y) in tqdm(enumerate(dataloader)):

修改为

 for idx, sample in tqdm(enumerate(dataloader)):
            X, Y = sample['X'].cuda, sample['Y'].cuda()

在这里插入图片描述

pip  install  tqdm==4.62.3

4、彩蛋 计算机期刊指标汇总

  • 跳转链接🔗

在这里插入图片描述

https://docs.qq.com/sheet/DR3VCaHFYUXVjTFJN?tab=BB08J2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1926288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Dify中的经济索引模式实现过程

当索引模式为经济时,使用离线的向量引擎、关键词索引等方式,降低了准确度但无需花费 Token。 一.提取函数**_extract** 根据不同文档类型进行内容的提取: def _extract(self, index_processor: BaseIndexProcessor, dataset_document: Data…

力扣经典题目之->移除值为val元素的讲解,的实现与讲解

一:题目 博主本文将用指向来形象的表示下标位的移动。 二:思路 1:两个整形,一个start,一个end,在一开始都 0,即这里都指向第一个元素。 2:在查到val之前,查一个&…

C语言 ——— 将一句英语短句中的单词进行倒置

目录 题目要求 代码实现 题目要求 将一句英语短句中的单词进行倒置&#xff0c;标点符号不倒置 如&#xff1a; 输入&#xff1a;"I like chongqing very much," 输出&#xff1a;"much, very chongqing like I" 代码实现 #include<stdio.h> #i…

c#与欧姆龙PLC通信——如何更改PLC的IP地址

前言 我们有时候需要改变欧姆龙Plc的ip地址,下图有两种更改方式,一种是已知之前Plc设置的Ip地址,还有一种是之前不知道Pl的Ip地址是多少,下面分别做介绍。 1、已知PLC的IP地址的情况下更改地址 假设已知PLC的Ip地址,比如本文中PLC的IP为192.168.1.2,我首先将电脑的IP地…

搭建调用链监控Zipkin和Sleuth

项目环境: win7、jdk8 1、添加依赖&#xff0c;添加了spring-cloud-starter-zipkin会自动导入Sleuth <!--Sleuth&#xff0c;zipkin--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zipkin</…

安卓onNewIntent 什么时候执行

一.详细介绍 onNewIntent 方法 onNewIntent 是 Android 中 Activity 生命周期的一部分。它在特定情况下被调用&#xff0c;主要用于处理新的 Intent&#xff0c;而不是创建新的 Activity 实例。详细介绍如下&#xff1a; 使用场景 singleTop 启动模式&#xff1a; 如果一个 Ac…

python+mysql图书管理系统,谈谈思路及实现代码

&#x1f3c6;本文收录于《CSDN问答解答》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收藏&…

【链表】算法题(一) ---- 力扣 / 牛客

一、移除链表元素 移除链表中值为val的元素&#xff0c;并返回新的头节点 思路&#xff1a; 题目上这样说&#xff0c;我们就可以创建一个新的链表&#xff0c;将值不为val的节点&#xff0c;尾插到新的链表当中&#xff0c;最后返回新链表的头节点。 typedef struct ListNo…

java《字符串进阶篇》--习题逐语句分析及认识链式编程

一、前言 字符串相关的习题分享&#xff0c;随着学习的深入&#xff0c;应该要多做一些习题来巩固知识点&#xff0c;而不是一味的去学习新的东西。这几天尽可能地去给大家分享一些常用的方法及习题的讲解&#xff0c;希望大家认真观看&#xff0c;每一道题都有对应的分析。基…

GAMMA数据处理(八)

新学习了一个命令&#xff1a; SLC_cat_ScanSAR - Concatenate sequential ScanSAR burst SLC images (Sentinel-1, TSX, RCM...)&#xff0c;做数据拼接的。之前一直没有涉及到拼接问题&#xff0c;就一直没管。如果研究区包含两景SLC&#xff0c;可以拼接成一景。但是不知道…

计算机丢失CH375DLL怎么办,CH375DLL.DLL;计算机找不到CH375DLL怎么办,CH375DLL.DLL

翻遍CSDN&#xff0c;发现的文章不是只有描述不给资源&#xff0c;要不就是资源收费。 真是狗屎啊&#xff1b; 在千辛万苦找到资源后&#xff0c;我决定写一篇&#xff1b; 首先是资源文件下载 我上传的&#xff1a;&#xff08;肯定是0积分&#xff0c;如果收费了告诉我&…

Nuxt.js 错误侦探:useError 组合函数

title: Nuxt.js 错误侦探&#xff1a;useError 组合函数 date: 2024/7/14 updated: 2024/7/14 author: cmdragon excerpt: 摘要&#xff1a;文章介绍Nuxt.js中的useError组合函数&#xff0c;用于统一处理客户端和服务器端的错误&#xff0c;提供statusCode、statusMessage和…

IOT 可编程控制系统

IOT&#xff08;物联网&#xff09;可编程控制系统&#xff0c;如GF-MAXCC等&#xff0c;是一种集成了多种先进技术和功能的智能化控制设备&#xff0c;它能够在物联网系统中发挥关键作用&#xff0c;实现对多种设备的集中管理和控制。具体来说&#xff0c;IOT可编程控制系统的…

7天学会CANOpen

本系列文章&#xff0c;主要介绍CANOpen的学习知识&#xff0c;能够全面掌握CANOpen原理。文章会不定期的更新。 学习基础&#xff1a;CAN通信。 1. CANOpen通信协议1 2. CANOpen对象字的理解 3. CANOpen之CAN-ID、NODE-ID、COB-ID 4. CanOpen报文类型 5. CANO报文---SDO…

python 怎样生成窗体

通过import tkinter导入Tkinter模块&#xff0c;没有这句下面的都不成立了。 wintkinter.Tk()&#xff0c;这句是创建windows的窗口对象&#xff0c;注意后面的Tk&#xff0c;大小写。 win.title("窗口")&#xff0c;这段是设置窗口上的标题。 另外窗口的大小你可以通…

Paddle 打包部署

PaddleOCR 打包部署exe 心酸历程 PaddleOCR部署exe模式PaddleOCR安装到本地(稍后有时间再写)PaddleOCR打包过程异常问题记录&#xff01;&#xff01;&#xff01;&#xff01;No such file or directory: D:\\py_project\\paddleOCR\\dist\\paddleOCR\\_internal\\paddleocr\\…

JVM:垃圾回收器

文章目录 一、介绍二、年轻代-Serial垃圾回收器三、老年代-SerialOld垃圾回收器四、年轻代-ParNew垃圾回收器五、老年代-CMS&#xff08;Concurrent Mark Sweep&#xff09;垃圾回收器六、年轻代-Parllel Scavenge垃圾回收器七、Parallel Old垃圾回收器八、G1垃圾回收器 一、介…

《Python数据科学之五:模型评估与调优深入解析》

《Python数据科学之五&#xff1a;模型评估与调优深入解析》 在数据科学项目中&#xff0c;精确的模型评估和细致的调优过程是确保模型质量、提高预测准确性的关键步骤。本文将详细探讨如何利用 Python 及其强大的库进行模型评估和调优&#xff0c;确保您的模型能够达到最佳性能…

防火墙之NAT,智能选路篇

什么是NAT? 网络地址转换 1.静态NAT&#xff08;static NAT&#xff09;&#xff08;静态一对一映射&#xff09;&#xff1a;设置起来最为简单&#xff0c;内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。多用于服务器场景。 2.动态NAT&#xff08;pool…

mavsdk_server安卓平台编译

1.下载好mavsdk并进入mavsdk目录 2.生成docker安卓平台文件 docker run --rm dockcross/android-arm64 >./dockcross-android-arm64 3.生成makefile ./dockcross-android-arm64 cmake -DCMAKE_BUILD_TYPERelease -DBUILD_MAVSDK_SERVERON -DBUILD_SHARED_LIBSOFF -Bbuild/…