自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(49)
  • 收藏
  • 关注

原创 【python】Error:‘xxx’ object is not callable

如果xxx是一个自己定义的或修改的class 类名,检查一下是否在class xxx ()中加入了nn.Module(),把它注册进整套系统中。

2024-01-25 22:08:13 117

原创 多层嵌套ssh远程连接服务器

参考这个简洁好用

2024-01-23 11:26:32 379

原创 pip踩坑记录

但是无论来回切换嵌套多少层,pip的版本总是对应于最初激活的那个base环境,所以最好的方法就是取消账号登录激活base环境的做法,然后自己手动选择初始激活哪个环境,该终端对应的即为该环境的python解释器对应的那个pip版本,默认的安装地址也即python解释器的相应位置。但是ping百度时默认的是ipv4的地址,很奇怪不知道为什么。pip能正常安装后,我又重新分别测试了恢复默认的v6网络优先级,和重新启用ipv6服务,结果现在网络也依然是正常的,至今不知道之前网络极端不正常的最关键因素是什么。

2024-01-22 22:56:48 948

原创 对tensor排序,并能够恢复成原始顺序

参考

2024-01-12 18:31:02 401

原创 分布式训练 大数据集 NCCL超时

一般从其他地方follow过来的代码本身都是没问题的,别人成熟的代码能跑通,放到自己的机器上应该也没太大问题,我出现这个问题的原因是自己在代码上魔改了一些,增加了一些计算,测试了一下发现这些计算非常耗时,可能导致没能在正常时间内顺利执行下去,删掉那些之前的测试计算内容后,程序顺利执行。

2024-01-10 09:43:28 607

原创 RuntimeError: Expected to have finished reduction

这个问题是因为模型中定义了一堆函数,但是在loss.backward()后,模型中的某些函数跟loss计算无关。

2024-01-10 09:30:21 448

原创 remote pdb使用记录

在实际使用中,这种方式确实能在多卡训练时使程序中断,但是在中断窗口不能正常键入字母。所以在ddp中,用第一种写法。4、在主程序的正常执行过程中,代表断点的remote终端关闭并不会影响主程序的运行,但是当主程序执行到当前断点,你在其他终端连接到当前断点的remote 窗口,又手动关闭后,主程序会自动终止退出。2、分布式训练时,如果用pdb调试,好像会根据预设的节点数量(也即GPU数量)出现同样多的调试终端窗口,在程序运行中,需要所有的节点的调试终端的都c或者n到指定位置,整个程序才会继续执行下去。

2024-01-08 15:26:33 409

原创 matplotlib 画图

semilogy 这个函数非常好用,使用时替代plot函数的位置,参数应该也是都与plot相同,区别是y轴数据会以对数形式画图(默认以10为底),如下图猜测semilogx函数也有相同的功能,不过是横坐标变成对数形式。...

2021-04-30 15:52:14 175 2

原创 Python 从一个Excel里面提取相应信息到另一个Excel中

#!/usr/bin/env python3# coding: utf-8from tqdm import tqdmimport xlrdtiqu = []workbook=xlrd.open_workbook('daitiqu.xls')sheet=workbook.sheets()[0]#第B列for i in range(1,691): tiqu.append(sheet.row_values(i))import pandas as pdK = 7746def f.

2021-04-09 21:39:55 3928

原创 python for......else 语句跳出两层循环

for i in range(5): for j in range(6, 10): print(j) if j > 7: break else: continue breakoutput:678for...else语句中for循环正常遍历结束后,会执行else内容,在某个i对应的所有j遍历之后,若还不满足条件,则执行continue,对外层的i起作用,外层循环加一,继续遍历j..

2021-04-08 10:36:16 279

原创 datetime真是个好东西

项目里用到了datetime库,发现真是个好东西啊。记录一下常用到的几个函数功能。首先import datetime1、获取当前时间datetime.datetime.now() # 获取当前时间datetime.datetime.now() # 世界时得到datetime.datetime类型的一组数,分别是年月日时分秒毫秒(最后一位不确定啥单位2、两个datetime.datetime类型的数据可以加减计算t = datetime.datetime(2021,1,1,1,

2021-03-06 16:56:32 259

原创 台式机网线连接笔记本通过wifi上网

台式机网线连接笔记本通过wifi上网完整方案有时台式机会突然断网,网线没问题,笔记本没问题,问题出在台式机的ip上。完整方案1、网线两端连接笔记本和台式机。以前需要用交叉网线,但是现在的网线好像不作区分了,都能用。2、笔记本端WiFi连接网络3、wlan网络属性勾选网络共享,如果有多个网络,框里选择以太网。4、笔记本的以太网属性中,记下ip地址和子网掩码5、在台式机的以太网属性中,默认网关设置与上面的ip地址相同,因为子网掩码前三位都是255,所以台式机的ip地址前三位与网关相同,后一位好

2021-03-06 15:38:36 3980 1

原创 rgb\yuv互相转换 pytorch代码示例

import torch def rgb2yuv(rgb): rgb_ = rgb.transpose(0,2) # input is 3*n*n default A = torch.tensor([[0.299, -0.14714119,0.61497538], [0.587, -0.28886916, -0.51496512], ..

2020-12-03 11:26:22 2212

原创 ghelper不能默认google搜索引擎

1、一直在用ghelper插件,突然感觉每次浏览器先打开谷歌引擎再找其他内容比较麻烦,就想直接把google设为默认。2、把浏览器按如下设置:搜索时发现是这样的:但是如何换回百度搜索引擎,先搜谷歌,再用谷歌搜索是这样的: 反复测试,都是这样,就很郁闷。3、后来发现,先用百度搜谷歌时,google的网址是这个插件代理走的香港的线路,而如果直接设置浏览器默认引擎为谷歌的话是这个:破案了,这个肯定上不去。4、在...

2020-12-01 17:19:04 6981 10

原创 关于skip connection中的add和cat的理解

在自己魔改网络时,发现skip connection中既有add又有cat操作。我在做的任务类似于图像修复,反正是图像先encoder 然后 resnet 然后 decoder,无意中发现输出的图像中有一种情况是每一张推理后的测试集图片都有小黑洞,每张都有说明并不是意外。通过对比实验发现,其他设置都相同时,skip connection是add的话,模型推理输出图像中基本都会在整张图像像素最低的部分(接近黑色)出现小黑洞。而如果用cat操作却不会有这种情况。后又知乎看到解释add和cat的区..

2020-11-23 22:05:34 1995

原创 有关USGS下载landsat 8影像的方法

USGS网站在数据共享方面真的做的挺好的1、首先需要翻墙去他们官网注册一个账号,注册还挺麻烦的,不过以后下载数据就方便很多了。2、有账号之后在https://glovis.usgs.gov/app?fullscreen=0#这个页面下载数据。如果不翻墙,我会一直加载不出来数据,因此先挂上梯子,等页面信息加载完整后(像下图这样)再撤掉梯子(如果翻墙流量足够无所谓)3、下图位置选择影响的日期和云量(有时不准)4、右下角下载影像时,有像图中很多选项前四种的解释在这儿官方给出了解释:

2020-10-13 22:02:58 4829

原创 pytorch中关于detach clone 梯度等一些理解

pytorch中有时需要复制一下张量(tensor),如果实在迭代过程中就会涉及到梯度的问题。我了解的常用的tensor复制方式有两种 .detach()和.clone()1、.detach()方法,比如已有tensor a ,b=a.detach(),则相当于给a起了个别名b,两个在内存中实际是一个东西,但是在计算梯度时,梯度从后面传到b不会再往前传了,到这就截止了。当只需要tensor数值,不需要往前的梯度或者故意将梯度在这儿截断时可以用这个方法。2、.clone()方法,与上面正相反,如.

2020-10-13 21:34:23 3018

原创 tensorboard使用理解

前段时间第一次接触tensorboard,网上教程也很简单易懂。如果服务器(linux)有多个节点(node),就得注意一点。首先 服务器端启动tensorboard服务端tensorboard --logdir=/path/to/log-directory服务器端是linux命令行界面,查看图形只能从本地windows端,因此在windows win+r 然后 cmd 打开终端,ssh -L 16006:127.0.0.1:6006 [email protected]...

2020-10-13 10:30:50 140

原创 pdb 在项目中设置断点

去年刚接触pdb调试时,只会在当前运行的py文件中设置断点,就是运行程序后,b 192 在当前程序的第192行设置一个断点。但是往往同一个项目下会被调用的其他py文件,比如 同目录的config.py文件中想中断一下查看个变量什么的就不知如何操作。前段时间才明白是可以 用 b config.py:192 来设置同项目下其他程序中的断点的,这样就可以方便地在程序运行的任意处中断来查看变量。...

2020-10-13 10:09:56 2078

原创 给无云遥感影像添加云层

A=0.9 %大气光for m = 1:261 a = imread(sprintf('%s%d%s','H:\数据集\自制数据集\分解tif\',m-1,'.png')); b = imread(sprintf('%s%d%s','H:\数据集\不同地形(青岛\test\分解\',m-1,'.png')); a1=a(:,:,1); a2=a(:,:,2); a3=a(:,:,3); b1=b(:,:,.

2020-09-21 10:48:28 612 4

原创 图像批量重命名

files = dir('.\*.png'); %导入图片l=length(files); %获取图片数量for i=1:l oldname=files(i).name; %获取每张图片的名字 %newname=strcat('000',num2str(i-1),'.png'); %对图片转换为名字为0001.png的格式 newname=strcat(num2str(i-1),'.png'); %对图片转换为名字为1.png的格式 eval(['!rename' .

2020-09-21 10:45:10 178

原创 大幅遥感图像切分

T = imread('H:\数据集\lvdi\LC08_L1TP_146043_20180103_20180118_01_T1.jpg');[m,n]=size(imread('H:\数据集\lvdi\LC08_L1TP_146043_20180103_20180118_01_T1.jpg'));name = 'LC08_L1TP_146043_20180103_20180118_01_T1';n=n/3;m=floor(m/512);n=floor(n/512);p=0;for i=1:.

2020-09-21 10:39:56 455

原创 NOAA爬取数值模式输出的nc数据

从NOAA爬取数值模式HYCOM的预报数据import urllibfrom bs4 import BeautifulSoupimport redate = ''rawurl1 = 'https://www.ncei.noaa.gov/thredds-coastal/fileServer/hycom_sfc/'+ date +'/hycom_glb_sfc_u_2020080300_t'rawurl2 = '.nc'file_ = r'H:\test' # 存放下载文件的地址for

2020-08-05 11:54:59 614

原创 根据label数据集的划分来对input数据集作相同的划分

path = r"file.txt"#传入要读的文件路径filee = open(path,“r”,encoding=“utf-8”,errors=“ignore”)“”"open表示打开你要执行的文件用读的方式打开第一个参数是上面的文件path路径,第二个是所要执行的操作,(r)代表读#encoding="utf-8表示指定编码为“utf-8”,errors=“ignore"表示读的时候遇到错误忽略“””import os,shutilsourceDir=’/home/xzx/Proje

2020-07-27 19:06:30 344

原创 transforms数据增强对input和label图片作相同变换

在训练网络时,若采用数据增强扩充数据集,pytorch中常用transforms.Compose([ transforms.RandomSizedCrop(max(resize)), transforms.RandomHorizontalFlip(), transforms.ToTensor(), transforms.Normalize([0.485, 0.456, 0.406], [0.229, 0.224, 0.225])])方法来进行变换。transform中

2020-07-10 19:58:19 4416 2

原创 cv2.imwrite()运行后没反应

前后出现好多次这个问题了,发现每次都是路径的问题。路径不对肯定不能正常存入图像,但是他不报错是最操蛋的

2020-07-06 11:34:16 1771 1

原创 python批量reszie代码

import cv2import osimport globpath = '/home/xzx/Project/MSBDN-DFF-master/SOTS/1/*.jpg'for i in glob.glob(path): im1 = cv2.imread(i) im2 = cv2.resize(im1,(544,304)) jj = os.path.join('/home/xzx/Project/MSBDN-DFF-master/SOTS/1/resize/',os.pa

2020-07-06 11:17:54 135

原创 2020CVPR去雾-Domain Adaptation for Image Dehazing Yuanjie

这篇文章针对人为构造的训练数据集与真实雾霾景象存在区别而导致训练好的模型在实际应用中效果不好的问题进行了探究整体思想是:已知两个数据集,合成数据集(含label)S和真实数据集R,分别通过S2R网络和R2S网络生成另外两个数据集S->R和R->S,共四个数据集。S和R->S两个数据集共享生成网络参数来训练去雾,R和S->R两个数据集共享另一个生成网络(与前一个网络结构相同)参数来训练去雾。整个网络的细节部分很多,因而有非常多的loss。损失函数1、转换部分1)对抗损失,二

2020-07-04 18:12:30 1106

转载 不适定问题(ill-posed)

计算机视觉中的不适定问题(ill-posed problem)

2020-07-04 08:29:07 445

原创 2020CVPR去雾-Multi-Scale Boosted Dehazing Network with Dense Feature Fusion

这篇文章主要有两个创新点。一个是Dense Feature Fusion,在encoder和decoder部分都有。一个是Deep boosted dehazing network,在decoder部分引入encoder的特征深入处理。思考了下本文的网络结构与我之前网络的异同点,只有本文网络的基础——unet结构与我相似,而其他细节处理部分是我没有的,恰恰是这两部分处理模块才是论文有价值的地方。文中说,这两部分思想一个是去噪文章常用的方法,另一个源于超分辨。因此,还是得多看文章。自己当前状态远远不够。

2020-07-03 22:45:51 2499 1

原创 python cv2.imread()几点认识

在探索如何自制遥感云影数据集的过程中,处理图片时遇到了问题,主要出现在cv2.imread()这个函数上。制作云影图片时,代码中保存了四个通道的信息,imwrite为一个png图片,shape为[512,512,4]。但是在用imread函数读入之后,显示为[512,512,3],原地迷惑了。之后我就想,会不会除了RGB三个常规通道,另外一个没有读进来。查了下,明白叫alpha通道,检索相关信息,才知道imread()函数有第二个参数,后找到这篇博客opencv中imread第二个参数的含义作者罗列

2020-05-09 18:24:03 5296 1

转载 nn.Sequential和nn.Module区别与选择

转自:nn.Sequential和nn.Module区别与选择

2020-04-27 15:39:45 1207

原创 Expected tensor for argument #1 'input' to have the same device as tensor for argument #2 'weight';

解决了题目所述问题。报错完整信息为:RuntimeError: Expected tensor for argument #1 ‘input’ to have the same device as tensor for argument #2 ‘weight’; but device 1 does not equal 0 (while checking arguments for cudnn_...

2020-04-23 11:41:06 5461

原创 nn.conv2d()

在用conv2d函数计算网络中间feature的大小时,发现不同博客提供的公式还不一样,后来发现是不同框架的区别。tensorflow中,padding填充有same、valid两种模式,分别对应两种计算公式。但是在pytorch中尺寸的计算是统一的:...

2020-04-21 17:16:48 398

转载 pytorch loss function 总结

简书:pytorch loss function 总结

2020-04-21 09:37:51 85

转载 L2loss会使生成的图像更模糊

来自知乎-陈耕:在GAN或VAE的image2image中,为什么加上L2或L1损失函数,会导致生成的图像模糊?实际上L2 loss会产生更平滑的图像。因为最小化L2 loss相当于最大化一个高斯分布的log-likelihood。也就是说,我们假定我们的数据是符合了一个高斯分布的。但是实际中,我们的数据可能是多峰的。比如说对于猫而言,有很多种不同种类长得不一样的猫,每个种类的猫可能都会带来一...

2020-04-20 17:03:18 2930

原创 网络训练中的图片尺寸问题_比例抽取图片代码

在用10张左右的样本图片测试网络成功后,开始考虑用这个测试集来评价网络。但出现了问题。在加载图像的过程中,频繁提示如下错误:RuntimeError: invalid argument 0: Sizes of tensors must match except in dimension 0. Got 256 and 210 in dimension 2 at …我意识到是数据集出问题了。整个...

2020-04-16 17:50:06 1991

原创 ATTENTION TRANSFER and CBAM

因为某些原因读了关于attention的两篇文章,简单总结下。论文地址:1、PAYING MORE ATTENTION TO ATTENTION: IMPROVING THE PERFORMANCE OF CONVOLUTIONAL NEURAL NETWORKS VIA ATTENTION TRANSFER2、CBAM: Convolutional Block Attention Modu...

2020-04-14 10:28:48 291

原创 关于几个normalization个人理解

比较经典的几个normalization:盗图:1、BN 对 (H×W×N) 进行归一化实现原理很简单,就是对一个minibatch 计算一下均值和标准差,然后进行一个标准化操作,最后通过添加两个(可学习)scale和shift参数来防止其太过于线性而降低网络的表达能力。网上都在说BN将输入强行拉回到正态分布看得我一脸懵,我觉得应该强调的是这个normalize使整个mi...

2020-04-09 18:07:40 442

原创 Region Normalization 总结

年前读了 Region Normalization for Image Inpainting 这篇文章,当时作者还未上传代码,文章内容也读的云里雾里。现在再深入理解一下文章。1、文章的重点在 normalization 上面。以前读文章也遇到过各种normalization,但没有系统比较过他们的具体机制,正好作者在Related Work部分专门列出了不同的normalization出处,码...

2020-04-09 13:47:08 1387 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除