- 博客(59)
- 资源 (2)
- 收藏
- 关注
转载 【numpy、pytorch】 .reshape()的元素变动过程(pytorch的view也是此过程)
【numpy、pytorch】 .reshape()的元素变动过程(pytorch的view也是此过程)
2023-08-02 15:58:43 684
原创 torch.optim.lr_scheduler.OneCycleLR 学习与理解
torch.optim.lr_scheduler.OneCycleLR 详解
2023-06-16 15:58:58 5747
原创 terminal中快速查看shell脚本的环境变量的值(echo),方便调试(快速查看.bashrc中环境变量的值)
terminal中快速查看shell脚本的环境变量的值(echo)
2022-11-07 14:12:00 1170
原创 np.tile()和np.repeat()的区别和使用方法(numpy复制数组的行、列、元素)
np.tile()和np.repeat()的区别和使用方法(numpy复制数组的行、列、元素)
2022-10-11 12:17:01 2044
原创 知道python路径不知道pip路径时,如何使用pip进行安装 (python -m pip)
知道python路径不知道pip路径时,如何使用pip进行安装
2022-08-12 17:08:46 420
原创 root用户执行python脚本的时候,会少一个“site-packages”第三库目录(使用sudo命令执行python脚本也会有同样的问题)
linux root用户调用python的时候,会少一个库(使用sudo命令执行python脚本也会有同样的问题)
2022-07-20 16:10:23 970
原创 np.meshgrid()函数 以及 三维空间中的坐标位置生成 以及 numpy.repeat()函数介绍
X, Y = np.meshgrid(x, y) 代表的是将x中每一个数据和y中每一个数据组合生成很多点,然后将这些点的x坐标放入到X中,y坐标放入Y中,并且相应位置是对应的例如:返回值:可以看到,np.meshgrid()生成的值,要再经过一次np.concatenate()才是坐标。返回值:但是,np.meshgrid()生成三维坐标位置也是有很大问题的:无论怎么修改np.meshgrid()中x、y、z的顺序,都无法实现对x,y,z中的值都实现从小到大,而且先x从到大,然后y从
2022-06-08 14:53:55 25782 3
原创 np.arange()可以代替python的range实现小数(float)的step
range()里面,只能是整数,step也必须是整数np.arange()里面可以是float类型例子:np.arange(0, 1, 0.1)返回:array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
2022-05-17 15:35:51 867
原创 python 导入.so 文件
下面的代码对应的文件如上:import syssys.path.append(r'/Volumes/qiang/all_code/CPP-scripts/pybind11/cmake_example/tests') # 路径为存放so文件的文件夹路径import cmake_example as m # cmake_example是so文件中的函数def test_main(): print(m.__version__, 'xxxx') # assert m....
2022-03-08 16:28:01 12243 3
原创 numpy在对数组进行“行过滤“的时候,使用集合运算函数比使用逻辑运算函数更简单
1、集合运算例1,集合运算的函数import numpy as np# 创建一维 ndarray xx = np.array([1,2,3,4,5])# 创建一维 ndarray yy = np.array([6,5,4,8,7])# 输出 xprint('x = ', x)# 输出 yprint('y = ', y)# 比较x和yprint('使用intersect1d输出x和y的交集:', np.intersect1d(x,y))print('使用setdiff1d输出在
2021-12-29 10:57:50 874
原创 pycharm快捷键之①“上下移动某一行“②参数提示
mac中:command + shift + 向上箭头,就可以向上移动当前行command + shift + 向下箭头,就可以向下移动当前行command + p,可以显示函数的参数列表control + q,可以显示函数的简略帮助信息windows中:ctrl + shift + 向上箭头,就可以向上移动当前行ctrl + shift + 向下箭头,就可以向下移动当前行ctrl + p,可以显示函数的参数列表ctrl + q,可以显示函数的简略帮助信息...
2021-12-26 15:15:12 2705
原创 opencv注释中的@brief、@code/@endcode、@param、@sa 以及 如何在pycharm中看到opencv函数的完整注释
主要是参考opencv官方文档中的解释:OpenCV: Writing documentation for OpenCV一、说明opencv在注释里面加入这些标志符号的原因是其使用了Doxygen这个程序,Doxygen这个软件可以通过标志符号将注释里面的内容收集起来组成一个完整的用户手册;简化了用户手册的制作过程。@brief、@code/@endcode、@param、@sa这些符号都是Doxygen程序的语法需要。二、符号的详细解释例子:/** @brief Calcu
2021-12-22 17:49:27 8358
原创 bytes和string 与 “w“/“r“ “wb“/“rb“的对应关系
string类型的对象,需要使用"w"/"r"byte类型的对象,需要使用"wb"/"rb"
2021-12-21 10:35:02 244
原创 pycharm右侧显示代码缩略图/预览 CodeGlance
Pycharm -> Preferences -> Plugins ->CodeGlance ->Install ->重启Pycharm效果如下:
2021-12-15 20:57:17 7499
原创 opencv cv2.copyMakeBorder()函数详解
一、官方的例子:OpenCV: Basic Operations on Images函数定义:cv.copyMakeBorder(src, top, bottom, left, right, borderType[, dst[, value]]) -> dstimport cv2 as cvimport numpy as npfrom matplotlib import pyplot as pltBLUE = [255,0,0]img1 = cv.imr...
2021-12-14 20:12:30 8100
原创 pytorch中的所有随机数(random库)(normal、rand、randn、randint、randperm) 以及 随机数种子(seed、manual_seed、initial_seed)
torch的所有随机数官方已经整理在torch — PyTorch 1.10.0 documentation这个页面了,我又重新整理到了本blog中,用中文进行了部分解释,方便理解。一、常用的1、torch.normal()离散正态分布返回一个张量,包含了从指定均值mean和标准差std的离散正态分布中抽取的一组随机数。①第一种形式torch.normal(mean, std, generator=None, out=None) → Tensormean(Tensor) – ...
2021-11-01 20:29:12 16413 1
原创 python for 循环中使用星号(*),实现分组展开列表
import numpy as npa = np.random.uniform(0, 1, (5, 6))print(a)for *b, c, d in a: print(b, c, d)for b, c, *d in a: print(b, c, d)三个print的结果如下:[[2.59082666e-01 9.33421608e-02 3.14394861e-01 5.21211733e-01 1.45397325e-01 9.50105984e-04]..
2021-10-25 15:20:42 932
原创 +0.5(加0.5)配合int()实现四舍五入
(0, 1) -> +0.5 -> (0.5, 1. 5) -> int() -> 0或者1实现了四舍五入的功能。
2021-10-09 15:17:37 739
原创 二重指针、二维数组及二者如何进行赋值
如果已经定义了一个指针类型,我们再定义一个指针,用于指向已经定义的指针变量,后面定义的指针变量就是一个指向指针的指针变量,简称指向指针的指针,这样的指针也称二重(级)指针。一、一般情况的例子:#include <iostream>using namespace std;int main(){ int **p; int c = 2; int *b = &c; p = &b; cout << p <<
2021-09-17 17:24:10 4905
原创 json.loads(string) string中的key必须使用双引号,不能使用单引号
json.loads(string) string中的key必须使用双引号,不能使用单引号
2021-04-30 17:22:50 2011 2
原创 pytorch torchvision的版本对应关系 pytorch历史版本
pytorch torchvision的版本对应关系:https://pytorch.org/get-started/previous-versions/pytorch历史版本下载地址:https://download.pytorch.org/whl/torch_stable.html
2021-03-24 14:34:44 3482
原创 python 中 or 的特殊用法,很有用的一个用法
1 or 2返回:12 or 3返回:2即如果or前面的数字为True会直接返回or前面的数字
2021-03-24 11:32:16 798
原创 python dict()函数的奇异之处
第一次发现这个问题,所以记录下来:b = dict(a=1)print(b)返回:{'a': 1}dict()函数里面竟然直接a=1中的a转为了string类型
2021-01-21 16:58:22 158
原创 torch.nn.parallel.DistributedDataParallel使用中卡在第一个epoch的原因之一
torch.nn.parallel.DistributedDataParallel的模型在进行eval()的时候必须加上with torch.no_grad(),否则就会导致一个卡卡死在运行eval()后的代码,而其他卡仍然在进行训练,其他卡不再等这个进行eval()的卡。在使用中有一个地方很容易错误,代码如下:if int(os.environ.get('RANK')) == 0: with torch.no_grad(): # print('dd0')
2021-01-09 15:44:23 2248
原创 torch.optim.lr_scheduler.MultiStepLR()用法研究 台阶/阶梯学习率
torch.optim.lr_scheduler.MultiStepLR(optimizer,milestones,gamma=0.1,last_epoch=-1,verbose=False)我自已用代码研究了一遍MultiStepLR()中的last_epoch参数,发现就是个垃圾。结论:①last_epoch就是个鸡肋的东西②会在milestone的时候乘以gamma的平方实验代码如下:1、首先是默认配置:import torchimport torchvisio....
2021-01-09 15:05:35 19851 19
原创 opencv3.4.x和opencv4.x中 cv2.findContours的不同 ValueError: too many values to unpack (expected 2)
opencv 4.xopencv 3.4.x一个返回三个值,一个返回2个值。很坑人
2020-11-23 16:49:37 621
原创 pytorch nn.CrossEntropyLoss()中的label不需要是one_hot
nn.CrossEntropyLoss()中的label不需要是one_hot。要求是一维的label。
2020-11-09 19:40:22 3273 10
原创 linux ps命令查看当前线程正在执行的程序
在linux中,使用top命令,智能查看线程的pid,但是不能查看到pid对应的程序的名称。(虽然使用htop可以看到,但是很多时候电脑上并没有htop)使用top命令,如下:今天通过研究发现了一个ps命令,可以将pid对应的程序的名称显示出来:命令:ps -eLf 执行结果如下:...
2020-11-04 19:15:27 1371
原创 torch.utils.data random_split
用来划分训练集和验证集等n_val = int(len(dataset) * val_percent)n_train = len(dataset) - n_valtrain, val = random_split(dataset, [n_train, n_val])
2020-10-27 20:33:59 2949
原创 git拉取远程计算机上的代码 并 与本地进行比较(git fetch; git pull)
1、方法一,也是最好的方法git fetch origin release/door_win_1.1.1git log -p release/door_win_1.1.1..origin/release/door_win_1.1.1git merge origin/release/door_win_1.1.1通过git log -p可以查看远程计算机load下来的代码,和本地代码的差异。观察完差异后,再用git merge进行合并2、方法二,需要在本地多建一个仓储git fetc
2020-10-10 10:28:12 2125 1
原创 python exception最简单的应用(基本可以满足大部分需求)(异常、raise的使用)
1、提示信息是通过括号放在异常名称后面的,如下正确:raise ValueError('d')错误:raise ValueError, 'd'返回:Traceback (most recent call last): File "/Volumes/qiang/all_code/git-test/scripts/python-experiment/exception_test.py", line 9, in <module> raise ValueError('d'.
2020-09-23 15:09:50 272
原创 skimage读取不到图片会报错 cv2读取不到图片返回None
# '/Volumes/qiang/window_door/2020-0904-testdataset-aggregate/0000000002_10158273_阳台.jpg'图片是我把.txt后缀改为.jpg得到的import cv2img = cv2.imread('/Volumes/qiang/window_door/2020-0904-testdataset-aggregate/0000000002_10158273_阳台.jpg')print(img)返回:Nonefrom sk.
2020-09-22 18:04:13 1303 2
原创 numpy获得ndarray的byte数 内存中的大小
使用.nbytes属性import numpy as npa = np.array([1,2,3,4,5,6])a.nbytes输出:48
2020-09-22 17:32:13 3338 2
原创 numpy常用的一种高效切片方式
使用双层[ ]来进行索引例1:import numpy as npa = np.array([1,2,3,4,5,6])a[[1,3]]返回:array([2, 4])例2:import numpy as npc = np.array([[1,2,3],[4,5,6]])c[:, [1,2]]返回:array([[2, 3], [5, 6]])
2020-09-22 17:24:31 300
原创 numpy中的对应元素相乘,可以使用广播
在目标检测中,通常会出现这个问题:预测出来的结果乘以图像的长和宽后得到在原图像上的框。例如:box_pred = np.array([[0.1, 0.2, 0.2, 0.2]])h, w, c = 256, 512, 3以前测做法是box_pred[:, 0] = box_pred[:, 0] * w...box_pred[:, 3] = box_pred[:, 3] * h其实可以这样:box_pred = box_pred * np.array([w, h, w, h])即使
2020-09-22 17:05:37 777
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人