
python
GZKPeng
深度学习有四境:调参炼丹境,理论创新陆地神仙境,张量运算剑仙境,无所不通无上剑仙境。
人若无名,便可勤奋练剑
展开
-
Python 应用Graphviz画类图
1、安装Graphviz.exe 官网https://link.zhihu.com/?target=http%3A//www.graphviz.org/download/ 需要科学上网,我也下在了百度网盘。以本机为例该路径下有两个文件夹,我们所需要的是Scripts路径下的pyreverse.exe。参考的:https://zhuanlan.zhihu.com/p/365953969。如果不成功配置一下环境变量,将安装目录下,bin文件的目录放进去。最后,生成的.dot文件啥的,也是在example下。原创 2022-09-08 08:54:36 · 880 阅读 · 0 评论 -
python 中 instance method @classmethod 和 @staticmethod的区别
python中对于类内部定义的方法,分为三种,实例方法(对象方法)、类方法、静态方法实例方法在被调用时,首先是需要以 obj.fun的方式调用,在调用的时候会偷偷传进去一个self。在定义时,需要在参数列表里写self,操作的变量的生命周期也是与此对象生命周期一致,并不能操作类下的属性(如下面代码中的aa),实际表现是操作无效,cls.aa还会被视为self.aa,如__init__类方法在被调用时,首先是需要以 class.fun的方式调用,在调用的时候会向fun偷偷传进去一个cls。静态方法可以由原创 2022-07-02 15:28:30 · 296 阅读 · 0 评论 -
AttributeError: ‘xxx‘ object has no attribute ‘ooo‘
class A: def f1(self): pass def f2(self): pass报错原因,缩进层级不对应,导致多缩进的未被识别到原创 2021-12-28 09:35:13 · 418 阅读 · 0 评论 -
Python filetype包精确判断文件类
filetype.pySmall and dependency free Python package to infer file type and MIME type checking the magic numbers signature of a file or buffer.This is a Python port from filetype Go package. Works in Python +3 .一个小巧自由开放Python开发包,主要用来获得文件类型。包要求Python 3.原创 2021-04-22 10:04:55 · 346 阅读 · 0 评论 -
python关于命名空间的一个小插曲
注意if __name__ == '__main__'跟java不同,下面的代码块并不是在 main()函数中,所以其中的变量也不是函数的隐私变量,而是全局变量。今天用flask的时候有个小插曲,先上代码示例:myapp=flask.Flask('__main__')class A(): def pt(self): return '哈哈'@myapp.route('/dmo',methods=['POST'])def rsp(): return a.pt()if __name__原创 2021-04-22 09:42:08 · 110 阅读 · 0 评论 -
python web.py框架获取请求中参数方法的差别
转载自https://blog.youkuaiyun.com/pupoqian3720/article/details/81877105web.input()和web.data()基于web.py框架,web.input()与web.data()是web.py模块中的两个函数,其都用来获取http请求包中的信息,但是获取的信息却是不同,以下我们来看看这两个函数有何不同web.input()web.input()方法返回一个包含从url(GET方法)或http header(POST方法,即表单POST)获取的变转载 2021-04-21 11:34:53 · 778 阅读 · 0 评论 -
Python调用函数报错:TypeError: cannot unpack non-iterable NoneType object
def Fun(a): if a>0: pass else: return a,0if __name__=='__main__': r1,r2=Fun(1)此时,异常会定位到由 Fun(1)这一行产生。原因是:1、满足条件的分支没有显式返回值时,Python默认会返回None; 2、当if条件不满足,并且没有else语句时;函数会默认返回None。调用时,将None赋给多个值时,会出现提示:TypeError: ‘NoneType’ object is not iterabl原创 2021-03-30 08:42:25 · 3285 阅读 · 3 评论 -
python 3.6以下用 f-string报错
f-string,称为格式化字符串常量(formatted string literals),是Python3.6新引入的一种字符串格式化方法。低版本python这么写会报错File "/dev/shm/KMr_project/detection/models/common.py", line 194 str = f'Image {i + 1}/{len(self.pred)}: {img.shape[0]}x{img.shape[1]}'原创 2021-03-09 09:04:47 · 1891 阅读 · 0 评论 -
python在linux下和windows下导入模块的区别
P|-A| a.py|-B| b.py文件结构如上,在windows下a想运行b中的方法,可以直接写成from B impot bb.fun()但是在linux中会出现ModuleNotFoundError: No module named 'B'可以通过引入sys添加路径解决import syssys.path.append("/P/B")from B impot b在程序中为了也有良好的移植性,可以在代码中显式添加路径,比如用os的方法:BASE_D原创 2021-03-02 15:24:32 · 1461 阅读 · 0 评论 -
【推荐】很好用的小工具pynvml
pynvml是用于英伟达GPU管理和监视功能的Python接口。可以用它来开发一些pytorch或者tensorflow 监控工具。具体的可以看官网:https://pythonhosted.org/nvidia-ml-py/后续小工具写好后也会发出来。可以通过源码也可以通pip安装。pip安装过程:pip install nvidia-ml-py这时候一般就可以用了,如果出现一下报错:Traceback (most recent call last): File "<stdin&原创 2020-12-24 10:38:22 · 1321 阅读 · 5 评论 -
pytorch加载模型报错KeyError: “filename ‘storages‘ not found“
应用pytorch加载模型报错:Traceback (most recent call last): File "/mnt/sdc/OCR/dev/ocr/recognize/crnn_recognizer.py", line 110, in __init__ self.model.load_state_dict({k.replace('module.', ''): v for k, v in torch.load(model_path).items()}) File "/home/GZK原创 2020-12-15 15:52:04 · 7971 阅读 · 4 评论 -
ModuleNotFoundError: No module named ‘recbar.detect.py‘; ‘recbar.detect‘ is not a package
文件结构:-recBar--__init__.py--detect.py封装模块写__init__.py的时候是这样写的:from .detect.py import BarRec应该是:from .detect import BarRec要注意的点:1、不要带".py"2、功能py文件不要是中文3、包名和功能py文件命名不要重复...原创 2020-10-26 16:57:03 · 143 阅读 · 0 评论 -
SyntaxError: EOL while scanning string literal
有一块代码片写的是:datadir=r‘C:\Users\Desktop\shishi\’因为 \ 是转义符。解决方法:datadir=r‘C:\Users\Desktop\shishi\\’原创 2020-09-14 10:34:46 · 193 阅读 · 0 评论 -
lmdb.Error:“路径“+:���̿ռ䲻�㡣
一开始因为报的异常带乱码,所以以为是编码格式的问题,后来发现并不是,查看报异常位置:env = lmdb.open(outputPath, map_size=1099511627776)第一个参数是路径,第二个参数是指定创建的新数据库所需磁盘空间的最小值。考虑OOM,把map_size改小,问题解决...原创 2020-09-10 16:11:30 · 6152 阅读 · 1 评论 -
创建lmdb数据库报错:OSError: [Errno 42] Illegal byte sequence: ‘C:/Users/Desktop/数据集‘
系统是win10-64。lmdb版本号是1.0.0 。因为lmdb.open(outputPath, map_size=1099511627776)不支持有中文的路径。换成纯英就行了原创 2020-09-09 14:29:16 · 1796 阅读 · 0 评论 -
python函数名中冒号和箭头的含义以及对强类型的帮助
在一些Python的工程项目中,可能会看到类似如下函数参数中的冒号,函数后面跟着的箭头:def Accumulate(num1: int, num2: int=100) -> int: sum = num1 + num2 return sum if __name__ == "__main__": print(Accumulate.__annotations__) print(Accumulate(1,2)) print(Accumulate(1))原创 2020-08-18 15:46:37 · 5971 阅读 · 0 评论 -
更新tensorflow后应用tensorboard报错
更新tensorflow后,出现tensorboard 不可用情况(tensorflow-cpu 1.4 ->tensorflow-gpu 1.7)尝试了更新tensorboard 仍然不可用,事故情况:运行tensorboard.exe报错并且闪退,在控制台运行tensorboard命令,报错如下:多方查证,在国内网站没找到有前车之鉴,于是发布问题到tensorflow ...原创 2019-05-07 09:05:24 · 1817 阅读 · 0 评论 -
pip命令报错:AttributError:module 'configparser' has no attribute 'Configparser' ,can not import theano
问题如上,最直接的表现是打不开Spyder IDE尝试在python 中import theano报错ImportError: cannot import name ‘configparser’原因:出现这种问题,通常是环境中出现了一个包的两个版本,最直接原因就是,pip install 了一个包,conda install 了一个包。解决办法:这时候pip不能用了,所以先用con...原创 2018-10-15 16:09:54 · 9242 阅读 · 10 评论 -
gym注册customer env 报错:Attempted to register malformed environment ID:My_env
跟随着gym的教程,准备把自己写的环境注册在gym的envs上面,过程如下:第⼀步,将我们⾃⼰的环境⽂件(笔者创建的⽂件名为 Myenv.py,类名为ReEnv )拷⻉到你的gym安装⽬录/gym/envs/classic_control⽂件夹中(拷⻉在此⽂件夹中是因为要使⽤rendering模块。当然本⽅法并不是唯⼀的,也可以采⽤其他办法。)。第⼆步,打开该⽂件夹(第⼀步中的⽂件夹)...原创 2019-03-10 10:38:38 · 4785 阅读 · 3 评论 -
Pytorch中的 AdaptivePooling
AdaptivePooling是只出现在Pytoch中的池化方法,官方给出的[运算公式]为:(https://discuss.pytorch.org/t/what-is-adaptiveavgpool2d/26897)kernel的大小为 (input_size+target_size-1) // target_size, i.e. rounded up(即四舍五入)中心点的位置为 四舍五入...原创 2019-05-07 10:15:39 · 998 阅读 · 1 评论 -
pytorch数据类型报错解决方案:
pytorch报错: RuntimeError: Expected object of type Variable[torch.LongTensor] but found type Variable[torch.cuda.ByteTensor] for argument #1 ‘argument1’解决方法:pytorch框架在存储labels时,采用LongTensor来存储,所以在一...原创 2018-07-20 14:54:51 · 2405 阅读 · 0 评论 -
ImportError:No module named 'pip'
更新pip后,出现问题:本人windows操作系统,在控制台输入python -m ensurepip即可解决问题。原因可能是升级pip的时候为了省事直接复制了命令行的提示信息,可能存在一些字符,还是要自己手打命令的靠谱...原创 2018-09-26 11:08:59 · 2926 阅读 · 0 评论 -
Pytorch 0.3 模型与重新加载持久化后同参数模型,最终表现不一致问题
最近发现了一个问题,训练好的模型,跑测试集表现很好,于是将模型参数持久化保存下来(注意,并非全部模型)。重新加载模型参数,跑测试集,发现结果差异很大,而且重新加载的模型表现非常差。 但是输出两次的模型的参数,比对发现一模一样。 持久化代码:def save_network(network, epoch_label): save_filename = 'net_%s.pth'% ...原创 2018-09-02 20:31:42 · 2820 阅读 · 0 评论 -
配置Python 加载类库
安装库 方式1:利用python自带的pip安装或easy_instal安装。 在cmd 直接输入pip install PIL 方式2:下载zip或tar等压缩格式后手动安装。 后缀名改为zip解压,然后把你需要安装的包放在site-packages文件夹中(我的地址在C:\Python34\Lib\site-packages) 方式3:下载exe或msi格式文件。 wind原创 2017-09-11 17:28:09 · 913 阅读 · 0 评论 -
python中的@,以及@在tensorflow中的作用
====转载请注明出处====Python中的@:援引廖雪峰老师对装饰器的解释以及一些自己对装饰器的理解:python中在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator)。@是装饰器的语法。装饰器是在函数调用之上的修饰,这些修饰仅是当声明一个函数或者方法的时候,才会应用的额外调用。 我们可以用装饰器来增加计时逻辑来检测性能,或者引入日志等等。函数也是一个对象,而且函数对象可以...原创 2018-05-25 18:37:45 · 7319 阅读 · 1 评论 -
Keras 报错:StopIterator
报错:Traceback (most recent call last): File "E:\Anaconda\lib\site-packages\keras\utils\data_utils.py", line 555, in get inputs = self.queue.get(block=True).get() File "E:\Anaconda\lib\multip...原创 2018-04-20 11:26:58 · 4519 阅读 · 18 评论 -
H5py报错:OSError: Can't read data (inflate() failed)
转载请注明出处事故描述: 我原先谢了个程序提取.mat文件的数据。以前用没问题,结果今天我准备再提取一次的时候报错如下:Traceback (most recent call last): File "create_dataset.py", line 123, in <module> create_dataset(args.mat_file_path) File "...原创 2018-04-19 20:12:58 · 7633 阅读 · 0 评论 -
关于重装tensorflow后spyder报错解决办法
tensorflow原先装的是cpu版本的,为了加速运算,把原先cpu版的tensorflow卸载,利用conda从新装了gpu版的tensorflow,安装成功后打开spyder,出现问题:原因:tensorflow-gpu会自动检查他依赖的包是否达到他的要求,所以会更新或者装一些包,就包括numpy,mkl是numpy底层依赖包,所以也被更新了。pip自动安装了numpy1.1.4,原先由于c...原创 2018-03-27 11:22:38 · 1991 阅读 · 0 评论 -
HDF5 的介绍以及在python中的应用
HDF5介绍:HDF 是用于存储和分发科学数据的一种自我描述、多对象文件格式。HDF 是由美国国家超级计算应用中心(NCSA)创建的,以满足不同群体的科学家在不同工程项目领域之需要。HDF 可以表示出科学数据存储和分布的许多必要条件。HDF 被设计为:自述性:对于一个HDF 文件里的每一个数据对象,有关于该数据的综合信息(元数据)。在没有任何外部信息的情况下,HDF 允许应用程序解释HDF文件的结...原创 2018-04-08 15:22:37 · 13219 阅读 · 0 评论 -
关于应用gpu训练神经网络的注意事项
对于GPU来说,一定要注意的是,要分别在两个GPU上,或者不同时的在一个GPU上运行train和evaluation的部分,否则限于GPU擅长迭代而不擅长逻辑的特性,会发生OOM(out of memory)...原创 2018-03-31 10:14:57 · 1868 阅读 · 0 评论 -
关于tensorflow-gpu的程序用spyder运行后,控制台报错: Kernel died, restarting的解决方法
问题:安装tensorflow-gpu以及cuda和cudnn以后,运行原先cpu版时可行的代码,spyder的控制台报错Kernel died, restarting原因:我尝试通过 python xxx.py的方式运行代码文件,发现报错如下:这里圈起来的这句话意思就是我的cudnn是7.1.02版本的,即大版本号是7.1,而cuda源码是用7.0.03编译的,即大版本号是...原创 2019-05-07 09:05:42 · 2681 阅读 · 0 评论 -
Python 中的None以及 == 与 is 的区别,以及判断某个list或者dict元素是否为None
type(None) <class 'NoneType'> “==”是判断的a对象的值是否等于b对象的值,通过value判断 “is”是判断a对象是否是b对象,通过id来判断>>> d = {"a":1}>>> dd = d.copy()>>> d is ddFalse>>> d == ddTrue如何判断某个元素是否为None:l=['a',None,'b']for i in r原创 2017-12-20 15:30:31 · 7402 阅读 · 0 评论 -
pytorch 0.4 改动: cannot resize variables that require grad
在pytorch0.3中做过一些关于张量求梯度的工作,目的是扩展一下pytorch的module,今天升级pytorch0.4,发现原先的代码不可用,报错如下: RuntimeError: cannot resize variables that require grad在pytorch 0.3中,允许对求梯度的变量改变size,改变size后,再次求偏导,梯度置0。实际上这是一个逻辑上的b...原创 2018-06-13 18:43:36 · 4242 阅读 · 3 评论 -
pytorch 0.4错误总结
0.4.0 发布说明错误修复:修复多进程下的内存泄漏问题 PR #5585 使用多线程版本 MKL 替代顺序版 MKL ,在 CPU 上带来10%的速度提升 PR #6416 重新添加 Compute Capability 5.0 显卡的支持 新功能:在编译中加入 MAGMA 添加 CUDA 9.1 build 提供 Wheels 包 支持新的cpp拓展 PR #5548 ...原创 2018-06-26 13:34:32 · 8598 阅读 · 2 评论 -
python3.5 报错: UnicodeEncodeError:'gbk' can't encode character '\u22f1' in position 211
python3.5 的一个pytorch程序中有打印张量的语句,原先代码还可以运行,几天以后忽然报错: UnicodeEncodeError:’gbk’ can’t encode character ‘\u22f1’ in position 211:illegal multibyte sequence解决方法: win_unicode_console.enable()...原创 2018-07-03 15:12:51 · 472 阅读 · 0 评论 -
Pytorch报错:Assertionerror nn criterions don't compute the gradient w.r.t. targets
引发错误目前看来有两种情况: 1、应该是在损失函数中,模型输出为首个实参,ground_truth为第二个实参,写反了会出现这种情况loss = criterion(output,label) #正确loss = criterion(label,output) #错误2、第二种情况,ground_truth需要与模型的某些参数运算后得到模型需要的标签,然后引发错误:#错误写...原创 2018-08-25 15:47:09 · 1443 阅读 · 0 评论 -
Pytorch画模型图
pytorch中好像没有个api让我们直观的看到模型的样子。但是有网友提供了一段代码,可以把模型画出来,对我来说简直就是如有神助啊。话不多说,上代码吧。import torchfrom torch.autograd import Variableimport torch.nn as nnfrom graphviz import Digraphclass CNN(nn.Module)...转载 2018-08-21 15:56:33 · 4252 阅读 · 0 评论 -
关于Pytorch 0.3 nn.Module的子类,前向传播过程的问题
线上代码:class ft_net(nn.Module): def __init__(self, class_num ): super(ft_net, self).__init__() model_ft = models.resnet50(pretrained=True) # avg pooling to global poolin...原创 2018-08-20 10:33:02 · 907 阅读 · 0 评论 -
tqdm介绍及常用方法
Tqdm 是一个快速,可扩展的Python进度条,可以在 Python 长循环中添加一个进度提示信息,用户只需要封装任意的迭代器 tqdm(iterator)。 使用pip就可以安装。使用方法一: tqdmtqdm(list)方法可以传入任意一种list,比如数组from tqdm import tqdmfor i in tqdm(range(1000)): #do ...原创 2018-08-16 20:17:39 · 273053 阅读 · 23 评论 -
关于Linux、Mac下和Windows下,python的multiprocessing差异
报错: RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase. This probably means that you are not usi...原创 2018-07-20 11:23:32 · 3401 阅读 · 2 评论