- 博客(53)
- 收藏
- 关注
原创 ValueError: --caption_column‘ value ‘text‘ needs to be one of: image
使用diffusers在自己的数据集上进行训练报错,刚开始以为是自己的数据集格式不对,尝试了hugging face(版本不兼容是真的难顶:(,很不容易debug,即便debug也没啥教育意义。)中的各种数据格式都不行,网上搜索一圈,也没找到好的解决办法,最后死马当做活马医,尝试降低datasets版本(
2023-09-12 14:25:47
1396
5
原创 将atan2的坐标转化为(0, 2pi)或(0, 360)
atan2(), 反正切函数, 可以用来计算两点之间的弧度/角度, 但是该角度是在它特有定义下角度(-180~180], 但有时候我们需要转化为[0, 360), 本篇文章提供一种转化思路i。如何将该坐标系转为(0~360)呢?
2023-02-14 19:55:34
3775
1
原创 coco和yolov5 map计算结果不一致的问题
在测试检测benchmark时发现使用coco和yolov5计算出的map结果不一致, yolov5的指标要略高一点, 好奇他们都是如何计算的, 通过阅读源码, 发现了一些端倪, 如有纰漏, 还望指出.
2023-02-07 12:31:11
4853
7
原创 ForkingPickler(file, protocol).dump(obj) TypeError: ‘NoneType‘ object is not callable
在使用multiprocessing时出现该报错,不知问题出在哪,网上找了好久,最终问题解决了,但具体原因仍然不是很清楚,暂且记录一下,也给有同样问题的伙伴提供一些思路。
2022-10-11 11:24:43
1622
原创 pytorch dataloader详解
构建自己的dataloader是模型训练的第一步,本篇文章介绍下pytorch与dataloader以及与其相关的类的用法。
2022-08-25 17:56:21
13290
1
原创 multiprocessing.pool详解
由于python有全局锁限制,如果想利用多核,就需要使用多进程模块,但该模块有很多坑,本篇文章记录一下其用法以及踩过的坑。
2022-06-24 10:59:35
5648
1
原创 赋值、浅拷贝和深拷贝
python中为声明一个变量有三种方法:赋值、浅拷贝(shadow copy)、深拷贝(deep copy),相信每个pythoner或多或少都知道他们之间的区别,但在某些点上,还是会踩坑,这篇文章记录下所有关于这三者区别的疑问。...
2022-06-15 10:22:46
345
原创 proxy VS reverse proxy
经常看到代理或反向代理这种词汇,发现网上有些答案讲的云里雾里,这篇文章试图深入浅出地分享下个人关于两种代理的理解。
2022-06-13 17:17:13
309
原创 python os.path.join
os.path.join用于将多个路径拼接为一个完整路径。经常使用,但没了解过细节,直到今天遇到一个令人疑惑的问题,最后发现是`os.path.join`的问题,借此机会,记录下os.path.join的用法
2022-06-13 12:12:04
2705
原创 python创建生成器以及访问的方法
与列表一次性地将数据全都加载到内存不同的是,生成器使用推断加载数据,每次只推断出一个对象,在数据量比较大时,可以节省内存。这篇文章简单总结下创建生成器的方法,并用举一个生成器在斐波那契应用的例子。...
2022-06-06 14:39:38
578
原创 python 将字典改造为对象
在实际项目中,当使用json模块加载一个深度很深的字典类型的json文件时,使用字典的访问方式,将会出现很多中括号,即不直观也不美观,可以将这个字典转化为对象,使得可以用.的方式访问。......
2022-06-06 11:29:22
3036
原创 pytest无法导入项目module
一、问题在使用pytest进行单元测试时,往往要先将要测试的模块import过来,再编写具体的测试文件。测试文件写好后,加入直接执行 pytest test_xx.py,就会收到报错: ModuleNotFoundError: No module named 'xxx'二、解决方法在项目顶层目录下,同时保证测试文件中的import都是项目顶层目录开始的绝对导入,使用python -m pytest your_prj_path/test_xx.py来启动pytest。三、原因python -m
2022-05-26 19:40:57
1004
原创 PIL.Image、cv2以及pytorch图像格式比较
在python中,PIL.Image、cv2以及pytorch都可以对图像进行处理,那么这三种方式读取图片输出的格式以及显示方式有哪些不同呢,一起来探究下。一、PIL提前准备一张JPG格式的,大小为427×640(H×W)的彩色图片进行测试:import torchimport torch.nn as nnimport torch.nn.functional as Fimport cv2import numpy as npfrom PIL import Imageimg_pil = .
2022-05-17 16:10:42
2427
原创 安装MMDetection并跑demo
安装MMDetection步骤见:MMdetection Document一、本地环境我的环境:Ubuntu 20.04.4Cuda compilation tools, release 10.1, V10.1.243在着手安装前,先确保本地显卡驱动正常,在terminal输入nvidia-smi ,如果正常,则会弹出GPU信息。如果驱动不对,则会弹出错误: NVIDIA-SMI has failed because it couldn’t communicate with the NVIDI
2022-05-13 11:33:41
1125
1
原创 python getattribute 、getattr、setattr 详解
python类中默认有一些特殊方法,这篇文章记录一下特殊方法的功能及用法。一、__getattribute__()顾名思义,当访问object的属性会调用该方法,可以测试:class A(object): def __init__(self, name,age): self.name = name self.age = age def __getattribute__(self, attr): print("__getattrib.
2022-05-12 16:23:50
1286
原创 python *args和**kwargs详解
一、使用场景在定义类或函数时,以下场景会用到*args和**kwargs,前者叫位置参数,后者叫关键字参数不确定传入参数的数量或形式不关心传入参数的数量或形式(此时该类或函数多作为一个中间件的角色,接收参数后只是做了一些预处理,最后将这些参数传递给其他类或函数做进一步处理,如装饰器)二、使用方法基本使用:def receive_args(*args, **kwargs): print(f'args type is: {type(args)}, value is: {args}')
2022-05-12 14:13:21
10829
1
原创 python import详解
在使用python做一些简单项目时,import一般不会出现问题,但项目结构复杂时,import可能发生报错。最常见的错误是:ImportError: attempted relative import with no known parent package,要弄清楚问题本质,就需要了解import的工作机制了。众所周知,import分为绝对导入和相对导入,两者的唯一区别就是是否使用了"."为一探究竟,构建以下项目目录:一、绝对导入先明确下,python中modules的概念并不统一,官方文档.
2022-05-10 11:19:29
5657
1
原创 Python装饰器详解
Python装饰器可以在不改变函数原实现方式的前提下,为函数添加额外的功能。装饰器的功能并不费解(fun = decorator(fun) ),但具体实现时有一些细节还是需要搞明白。一、函数装饰器为表述方便,下面例子decorator开头的表示装饰器函数,func表示被装饰函数。decorator不带参数#不带参数的装饰器def decorator_without_args(func): def wrapper(msg): print('I got a decor.
2022-04-28 19:49:45
2527
1
原创 Got permission denied while trying to connect to the Docker报错排障
Ubuntu安装docker后使用当前用户执行docker指令报以下错误:Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json: dial unix /var/run/docker.sock: connect: permission
2022-04-27 16:39:49
1047
原创 ubuntu避免每次都输入sudo
一、打开sudo visudo该文件在/etc/sudoers,无需切换目录,直接输入上述快捷指令即可打开二、更改#User privilege specificationroot ALL=(ALL:ALL) ALL在下面添加your_username ALL=(ALL:ALL) ALL三、离开1.Ctrl+o 保存2.按回车确认保存3.Ctrl+x 退出...
2022-04-24 11:21:58
11541
3
原创 ubuntu snap默认安装路径
安装snap后会在根目录下生成一个 snap文件夹,使用snap安装的applications都在此文件夹中,其中applications快捷方式在:/snap/your_app_name/current/usr/share/applications
2022-04-15 09:51:55
11548
原创 torchvision.transforms.ToTensor()不缩放问题
在加载MNIST数据集时,发现即便传入了transform参数,img并未像预期那样被压缩到(0,1),仔细研究一番,终于找到问题。在这个过程中,发现许多“技术博客”人云亦云,不求甚解,因此分享出来,若有错误,也望指正。1. 疑问通常我们这样来加载MNIST数据集:# 训练集train_data = torchvision.datasets.MNIST( root = r'D:\backup\Desktop\cnn', train = True, # True为下载训练集,Fal.
2022-03-24 23:31:27
1207
1
原创 删除链表倒数第n个节点
题目链接:力扣众所周知,使用双指针可以一次遍历,就将倒数第n个节点找出来,但实际上具体操作时有很多要注意的小细节,一不留神就会出错。假设链表为[1,2,3,4,5],删除倒数第2个,即4。因为要删除节点,所以不但要找到倒数第n个节点,还要找出倒数第n个节点的前一个节点,解题步骤如下:1. 快指针从头结点(不连头结点)开始向前走n步:2. 慢指针从头结点开始:3. 快慢指针一起向后移动,直到快指针指向最后一个节点此处注意两个细节:此时慢指针并未指向倒数第2个节点,而是指向.
2022-02-20 22:20:41
339
原创 python变量赋值踩坑记录
我们都知道python有深拷贝和浅拷贝,但变量赋值又是什么机制呢?这是个容易被忽略却又极易踩坑的点,我们来一探究竟。先说结论:变量赋值属于浅拷贝(关于深拷贝和浅拷贝的区别可以自己了解下)。故如果是可变类型变量(如a是list类型,a=b)赋值,修改a会牵连到b;如果是不可变类型(如int)的赋值,则修改任意变量不会传递。1. 可变类型赋值可以看出,对于可变类型赋值,变量始终指向同一块地址。2. 不可变类型赋值对于不可变类型变量的赋值,刚开始是指向同一块地址,但修改.
2022-02-20 15:32:57
848
原创 程序员的终极浪漫,用python画一棵你的专属圣诞树
turtle是python3自带的绘图模块。这个模块最有趣的地方在于它完全是拟人化的。在真正绘画开始前,你可以设置画布大小&颜色,然后指定画笔的形状(默认是小乌龟~)以及颜色,最后指定坐标,就可以开始绘画了。甚至它还包含了画笔动作,如旋转,提起笔(不提的话前后两个位置会有连线)等等,非常有趣。刚好赶上节日,快用turtle画一棵你的专属圣诞树,送给你的那个TA❤吧。turtle画图的步骤创建画笔实例myPen = t.Turtle()myPen.shape("blank") # 默认.
2021-12-24 09:31:40
4498
原创 动态规划之零钱兑换
前面以最大背包问题为例,总结了动态规划题目的解题套路。这次我们就按照套路模板,再来剖析一道经典动规题目——零钱兑换。问题描述给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。问题分析考察其是否满足动态规划的两个特征:是否求最值?显而易见,这是一个求最小值的问题;是否具有最优子结构?考察大规模问题的解是否可以由.
2021-12-23 10:00:08
1039
原创 保姆级01最大背包问题讲解
保姆级01最大背包问题讲解学习动态规划,始终绕不开01最大背包问题。相较于求解斐波那契数列,01最大背包问题是更标准的动态规划题目(因为它目标是求最值)。接下来我们一点点剖析01最大背包问题的每个细节,去掉那些人云亦云的部分,重点突出一些容易让人迷惑的地方,力求小白也能看明白。问题描述有一个背包,容量 capacity=5,有 3个物品,物品不可分割。每件物品和价值如下,要求尽可能让装入背包中的物品总价值最大,但不能超过总容量。物品编号123重量134价值1
2021-12-19 20:28:07
1203
原创 python 实现两个字符串乘法
两个字符串相乘,基本思路是num1依次乘以num2各个数位上的数字,再将其累加,如下图所示: 需要注意的是,对于高位的乘积,需要在后面补0,0的个数和num2的数位有关系,十位补1个0,百位补2个0,假设num2的长度为n,从左到右对其数位编号为0、1、2...i,总结规律为:补0的个数=n-1-i。 以下是具体代码:#两个字符串相乘#基本思路是num1依次乘以num2各个数位上的数字,再将其累加from add_strings import add_s...
2021-12-06 00:07:58
3440
原创 python 实现字符串加法
给定两个由数字组成的字符换num1和num2,计算它们的和,不能用内置的加法方法。基本思路就是竖式计算的过程,两种方法,其中涉及一些容易出错的地方,代码中都做了注释。# 两个字符串(合法的数字字符串)相加,不能用内置库# 算竖式的思想,个位对齐,相加,并把进位传递到下一位def add_strings(a,b): len_a = len(a) len_b = len(b) n = max(len_a,len_b) carry = 0 # 进位标志 re
2021-12-05 15:55:33
9957
2
原创 python 全排列(回溯算法)
问题:输入列表L(不含重复元素),输出L的全排列。如输入:L=[1,2,3]则输出:[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]] 全排列问题,可以用回溯法解决,详细分析请参考东哥公众号:labuladong,看了之后醍醐灌顶。 先帖一个正确解法:'''回溯算法模板:from: labuladong公众号result = []def backtrack(选择列表,...
2021-11-20 09:02:07
4596
5
原创 python反转链表(递归&迭代)
#定义链表node结构class ListNode: def __init__(self,data): self.data = data self.next = None#将L转化为链表def make_list(L): #将L初始化为链表 head = ListNode(L[0]) cur = head for i in L[1:]: cur.next = ListNode(i) cur .
2021-11-13 19:12:42
1924
原创 python将列表转化为链表
python创建链表A:首先明确一下,怎样才算拿到一个链表?又怎样才能访问整个链表呢?Q:1.拿到链表的头节点=可以访问链表了。2.通过不断访问下一个节点(current_node.next())来实现遍历整个链表。代码如下:# -*- coding: utf-8 -*-'''func:输入一组数字,并将其初始化为链表author:jyz'''#节点类class Node(): def __init__(self,data): self.data = dat
2021-08-08 15:46:24
1473
原创 pyspark出现错误
1.环境win7、pycharm、python2.7、spark-2.3.1-bin-hadoop2.72.wordcount程序#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2018/12/1 0001 上午 9:10# @Author : JingYZfrom pyspark import SparkC...
2019-01-14 11:58:16
2142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人