Deploy_Issue
运行错误
pycharm中: OSError: [WinError 1455] 页面文件太小,
相信很多小伙伴在使用pycharm的时候都遇到这个问个报错问题吧, 我是在跑PyTorch相关代码遇到的这个问题, 也搜索了很多解决办法, 这里介绍下我总结的经验.
这是我搜索到的三种解决方法, 依次来介绍下:
重启pycharm(基本没啥用)
这是最简单的方法了, 可以先尝试一下, 反正也很简单, 不过如果你是第一次遇到这个问题, 基本是解决不了问题的.
把num_works设置为0 (可能也没啥用)
这个方法也是网上见过最多的方法了吧. 但有一说一, 网上的教程是真的很不友善, 好多答案直接就这一句话, 没有其他任何操作, 好多小伙伴留言根本找不到地方, 也不知道这个变量在哪里.
这里给大家介绍一种方式, 善于利用pycharm的搜索功能, 直接在搜索框中搜索这个变量名, 就可以直接找到相关文件, 不用自己慢慢找了.
如图就是网友说到的dataloader文件了, 直接点击就可以进入文件中.网上的答案是这样的, 就是说改变下面这个变量num_workers的值为0就可以了

我找到这个文件之后, 再用Ctrl+F搜索搜索其中变量的位置, 但是我并没有找到上图中的代码块, 评论中还有网友说在其他位置的(dataset), 我都尝试了一下, 是真的没找到.
至此我几乎放弃这种方式了, 而且想了一下就算改为0成功了, 以后可能也会对其他代码产生影响吧, 毕竟这个变量肯定是有用的, 否则也不会存在, 也就是说这是一种治标不治本的方式.
没有解决问题, 我为什么还要写这样方式呢? 首先确实有网友评论是解决问题了, 说明方法本身是可行的, 其次, 我提供了一种搜索的途径, 这个方式可以使用在任何地方, 以后不会再为了找变量在哪而烦恼.
下面我们回到这个问题的报错上面来, 报错是 页面文件太小,无法完成操作, 这说明我们电脑的页面不够, 所以本质上我们还是应该解决页面的问题, 而不是变量的问题.
基于这个思想, 我又开始找其他答案, 终于发现了最后的一种方式, 如下:
==调大页面文件的大小 + 更改一下batch_size==(彻底解决问题)
先说下这个问题的存在, 我们看下下面的这张图, 会发现电脑默认情况下是没有给D盘分配虚拟内存的, 所以将Python装在D盘的朋友, 在跑程序时, 没有分配虚拟内存, 自然就遇到了上面的问题, 所以根本操作只要给D盘分配虚拟内存即可.(如果Python安装在C盘, 就更改C盘的虚拟内存的值, 调大点)

具体操作如下, 直接搜索 高级系统设置:
按照如图所示操作, 最后根据自己D盘可用空间的大小来设置一下虚拟内存的大小, 最后点击确认, 再重新运行程序, 问题就解决了. 这里说下, 可能存在另外一种情况, 就是你D盘的虚拟空间早就设置好了, 那可能真就是你跑的程序样本太大了, 可以尝试更改一下batch_size就是你训练量的值, 将它设置小点, 看看能不能解决, 实在不行的就去尝试第二种方法吧, 这就是我找到的几乎所有解决方法了.
本文转自 https://blog.csdn.net/weixin_43959833/article/details/116669523,如有侵权,请联系删除。
cv2.imwrite()不报错,但却保存不上图片
原因1: 保存路径不存在。可以在 cv2.imwrite() 语句之前加一个检查路径的语句,如下:
if not os.path.exists(path):
os.makedirs(path)
即判断要保存的文件夹是否存在,若不存在就创建该文件夹。
原因2: 保存路径「不能有中文」,这点非常容易忽视。
建议大家养成使用英文的习惯。
本文转自 https://blog.csdn.net/weixin_37889356/article/details/104359278,如有侵权,请联系删除。
BrokenPipeError: [Errno 32] Broken pipe
原因: 在训练过程中,设置的num_workers过大
num_worker参数理解 下面作者讲的很详细,大致就是设置参数大的话,例如参数为10,就可以有10个线程来加载batch到内存。当然参数设置过大,而自己内存不够的情况下,就会出现线程管道破裂,即broken pipe ,所以一般默然设置为0. 当然:如果num_worker设为0,意味着每一轮迭代时,dataloader不再有自主加载数据到RAM这一步骤(因为没有worker了),而是在RAM中找batch,找不到时再加载相应的batch。缺点当然是速度更慢。 具体参考以下链接。 参考:pytorch中num_workers详解
版权声明:本文为CSDN博主「卡小葵」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/kaxiaokui/article/details/106453605
TypeError: transpose() received an invalid combination of arguments - got (int, int, int, int), but
TypeError: transpose() received an invalid combination of arguments - got (int, int, int, int), but expected one of: *(int dim0, int dim1) *(name dim0, name dim1)
出现这个错误是因为给transpose传入了错误数量的参数,transpose一次只能调换两个维度,正确使用方式如下:
import torch
x=torch.rand(2,3,4,5)
torch.transpose(x,0,3)
#或者
x.transpose(0,3)
若要交换多个维度建议调用permute
,参考如下
import torch
x=torch.rand(2,3,4,5) #这是一个4维的矩阵
print(x.size()) # torch.Size([2, 3, 4, 5])
# 若要将 C T H W 转换为 T H W C
#先转置0维和1维,之后在第2,3维间转置,之后在第1,3间转置
y = x.transpose(0,1).transpose(3,2).transpose(1,3)
print(y.size()) #torch.Size([3, 4, 5, 2])
# 可以看到用transpose需要转换三次
# 此时直接用permute更见简便
print(x.permute(1, 2, 3, 0).shape) #torch.Size([3, 4, 5, 2])
#若在 维度变换后还需要进行reshape操作的话,需要在后面加.contiguous(),保持连续
x.transpose(0,3).contiguous()
x.permute(1, 2, 3, 0).contiguous()
参考:
https://blog.csdn.net/weicao1990/article/details/93618136
本文转自 https://blog.csdn.net/weixin_44493291/article/details/121915132,如有侵权,请联系删除。
关于PIL
Clipping input data to the valid range for imshow with RGB data ([0…1] for floats or [0…255] for integers)
在Python中,使用 matplotlib 的函数:plt.imshow(ndarray) 将输入数组显示为彩色 ( RGB ) 图像时。
而且,只在处理彩色图像时出现错误提示,显示为空白图像;处理灰度图像时函数运行正常、显示图像。
原因 plt.imshow() 函数设置:
对于二维数组(灰度图像),函数会自动将输入数据归一化变换至[0,1],然后显示。
对于三维数组(彩色图像),plt.imshow() 函数并不会自动对输入数据归一化处理,而是对数据取值范围提出要求:如果是float型数据,取值范围应在[0,1];如果是int型数据,取值范围应在[0,255]。
版权声明:本文为CSDN博主「宁萌Julie」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/applebear1123/article/details/120421817
collections.OrderedDict' object has no attribute 'eval'
pytorch==1.6.0的框架下保存模型时,若想让模型在整个训练过程之后的预测过程中加载模型,不能使用
torch.save(model.state_dict(),model_path)
该语句只保存了模型的权重参数未保存整个模型,
model.eval()
时候会报错
collections.OrderedDict' object has no attribute 'eval'
正确语句应当为
保存时
torch.save(model,'save_path')
加载时
torch.load('save_path/model')
本文转自 https://blog.csdn.net/qq_41048571/article/details/111268942,如有侵权,请联系删除。
‘torch.dtype‘ object has no attribute ‘type‘
np.mean()改为torch.mean(torch.stack(my_list))即可
loss是一个tensor np.mean() 输入list可以,array也可以 torch.mean() 必须输入tensor,最后得到的结果也是tensor torch.stack()沿着某个维度进行堆叠数据 所以np.mean()会报错
版权声明:本文为CSDN博主「热心市民付先生」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/qq_31460605/article/details/103709896
tensorboard : 无法将“tensorboard”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
前言:今天在用实验室新买的电脑运行代码,通过tensorboard看运行过程时遇到了这个问题:tensorboard : 无法将“tensorboard”项识别为 cmdlet、函数、脚本文件或可运行程序的名称
出现这个问题首先看一下你当前所用的conda环境是不是你当前用的环境。
在pycharm的terminal终端默认用的是base环境,需要通过activate命令激活到你所用的环境,再通过tensorboard命令看运行记录。
在这时你可能会遇到一个问题,在pycharm的terminal终端通过activate命令激活时无法激活到对应环境。
这时问题很好处理。 转到File -> Settings -> Tools -> Terminal。
如下图选择到cmd.exe
然后保存之后关闭pycharm重新打开 activate命令就可以使用了
然后激活到你对应的conda环境输入tensorboard命令就ok了

本文转自 https://blog.csdn.net/qq_47997583/article/details/125028675,如有侵权,请联系删除。
anaconda问题
安装anaconda后,在ipython里导入某些模块的时候报错
UserWarning: mkl-service package failed to import, therefore Intel(R) MKL initialization ensuring its correct out-of-the box operation under condition when Gnu OpenMP had already been loaded by Python process is not assured. Please install mkl-service package
解决方法:
先配置三个环境变量,缺一不可
D:\Anaconda3
D:\Anaconda3\Scripts
D:\Anaconda3\Library\bin
将D:\Anaconda3\Library\bin下
libcrypto-1_1-x64.dll
libssl-1_1-x64.dll
以上两个文件复制到
D:\Anaconda3\DLLs
问题解决
本文转自 https://blog.csdn.net/u010741500/article/details/107141692,如有侵权,请联系删除。
pip问题
pip安装报错:is not a supported wheel on this platform
出现这个问题,是由于这个whl和系统python版本不匹配导致的。这个时候,需要我们找到当前python版本需要的whl命名格式,网上有不少教程提供了查看python支持whl名称的方法。 然而,网上的教程非常老旧,按照网上教程操作后,会提示pip has no attribute pep425tags。经过我多次搜集资料和尝试,总算找到了在pip 20.0等版本上可用的命令!
经测试有效的命令
我们可以通过下面这个经过测试有效的命令,来查看当前Python版本匹配那些文件。 有效命令如下(直接在命令行中输入,不要在Python解释器输入哦):
pip debug --verbose
输入这个命令后,会输出大量信息:
pip version: pip 20.1.1 from /home/pi/Softwares/venv3/lib/python3.7/site-packages/pip (python 3.7) sys.version: 3.7.3 (default, Dec 20 2019, 18:57:59) [GCC 8.3.0] ......webencodings0.5.1 (Unable to locate actual module version, using vendor.txt specified version) Compatible tags: 44 cp37-cp37m-manylinux2014_armv7l cp37-cp37m-linux_armv7l cp37-abi3-manylinux2014_armv7l ....
从中我们可以看到Compatible tags字样,这些就是当前Python版本可以适配的标签。例如,我的Python版本是3.7.3,可以匹配下面这些文件名:
Compatible tags: 44 cp37-cp37m-manylinux2014_armv7l cp37-cp37m-linux_armv7l cp37-abi3-manylinux2014_armv7l cp37-abi3-linux_armv7l .........
py35-none-any py34-none-any py33-none-any py32-none-any py31-none-any py30-none-any
这是真正解决了网上旧教程无效的问题。适用于pip 20.0等新版本的pip。
注意:之前旧版本的无效方法是Python语句,而此次有效命令则是pip命令,直接在命令行中输入,不要在Python解释器中输入哦!
本文转自 https://blog.csdn.net/happywlg123/article/details/107281936,如有侵权,请联系删除。
pip install 警告 WARNING: Ignoring invalid distribution -umpy
在Python安装模块的时候总是会有警示信息WARNING: Ignoring invalid distribution -umpy,如下: 解决方法:找到对应的文件路径,发现在sit-packages文件夹下面有几个名称前面带有“~”标识的文件夹,将其手动删除即可:
pip install pytorch出现 MemoryError
如下图:
根据最后一行红色字体我们知道出现了MemoryError,根据字面意思我们可知此问题与内存有关。
因为pip安装的缓存机制想要先把整个文件读取到内存以后才开始安装,因此可能导致内存不足。所以我们在安装时指示不启用缓存即可,可以使用 --no-cache-dir 命令,如下
pip install --no-cache-dir torch==1.5.1+cu101 torchvision==0.6.1+cu101 -f https://download.pytorch.org/whl/torch_stable.html
遂解决
本文转自 https://blog.csdn.net/cangafuture/article/details/107146717,如有侵权,请联系删除。
protobuf requires Python ‘>=3.7‘ but the running Python is 3.6.5的解决方法
安装tensorflow的时候遇到几个坑,先是tensorflow不支持最新版本的python,于是重新安装python3.6版。安装tensorflow仍报错,通过百度无果,后自己尝试解决,故在此记录此坑。
报错信息:protobuf requires Python '>=3.7' but the running Python is 3.6.5
解决方法:更新pip后重新安装tensorflow。
更新命令:python -m pip install --upgrade pip
版权声明:本文为CSDN博主「LucyGill」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/LucyGill/article/details/125268665
pycharm问题汇总
ModuleNotFoundError: No module named 'sklearn’
安装机器学习库,需要注意报错的sklearn是scikit-learn缩写。
pip install scikit-learn
PyCharm 导包提示 unresolved reference
描述:模块部分,写一个外部模块导入的时候居然提示unresolved reference,如下,程序可以正常运行,但是就是提示包部分红色

解决:
如果创建的是directory而不是package上述操作不会生效!,类似问题可以参考文章:部署遇到的问题及调参.md
1.在项目上 单击右键 -> Mark Directory as -> Sources Root

进入设置:file -> settings

按照下图展开 Build,Execution,Deployment -> Console -> Python Console -> Add source roots to PYTHONPATH,勾选上3,选择确定,问题完美解决

unindent does not match any outer indentation level在pycharm平台的解决-方法
1、代码前后缩进量不一致(前面有红色小波浪线,说明在这里出现了缩进错误)
2、代码前后缩进符号不一致
上图中两个函数的定义前面缩进都是一样的,但是在x=3后面出现错误提示,说明在句附近(前后)出现了缩进错误,将鼠标移到高亮黄色区域或者红色波浪线错误区域都会显示错误信息:
从错误信息中可以看到,x=3与下面的缩进不匹配,进一步在第二幅图中可以看到提示:不连续的缩进,
上一行的缩进使用的tab缩进 而这一行使用的是sapce缩进,显然,将def test2前面的缩进改成tab就OK了
3、tab与space混用
如果你在一段代码前面即使用空格又使用tab进行缩进,自然会发生错误,这个时候pycharm会自动进行判断,根据你设置的预先缩进值(intentaion)进行调整
你设置的缩进值上面的设置中进行设置,一般为4,上图为3。
####如果你打开别人的python程序或者python脚本,很有可能出现缩进错误,这时只要修改错误地方的缩进量即可。或者使用全局替换对代码中的空格和缩进进行替换
采用Crtl+H的快捷键进行替换即可
特殊的安装包
opencv-python
Could not build wheels for opencv-python which use PEP 517 and cannot be installed
安装pip install opencv-python
输出
Collecting opencv-python
Downloading https://files.pythonhosted.org/packages/77/f5/49f034f8d109efcf9b7e98fbc051878b83b2f02a1c73f92bbd37f317288e/opencv-python-4.4.0.42.tar.gz (88.9MB)
100% |████████████████████████████████| 88.9MB 919kB/s
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Requirement already satisfied: numpy>=1.13.1 in /usr/local/lib/python3.5/dist-packages (from opencv-python) (1.14.5)
Building wheels for collected packages: opencv-python
Building wheel for opencv-python (PEP 517) ...
如果遇到以下过程后报错,则建议先更新pip后再执行安装。
更新命令:
pip install --upgrade pip setuptools wheel
我遇到的问题是安装很慢,好像是卡在那里,基本10min以上,只能耐心等待,有一个指令好像是加上
--verbse
可以看具体的执行过程。
H5PY
解决H5py 初始化问题:ImportError:DLL failed to load
最近在做毕业设计,突然发现原本可以在学校跑的代码,在家出BUG!
问题:H5py找不到 h5.pyx文件
此问题我理解为,在初始化h5py的时候,文件缺失,导致DLL;
无语。。第一个想到的解决办法:重新安装H5py
这个办法没用。。。。 因为本人用的anaconda,已经卸载+重装N遍发现没用。
裂开。。。第二个想到的解决办法:版本问题
我去查了H5py官网,发现较近的版本有:2.10.0 ,2.9.0 ,2.8.0 ,2.7.1等。。我挨个安装了一遍,都是不行最后一个有效的办法:在官网下载whl文件,手动下载
由于上面的操作,本人都是直接从conda上下载的H5py包,报的错又都是找不到文件,所以我觉得可能是conda上直接下载的文件有问题。
果断,到官网下载!!
https://pypi.org/project/h5py/2.10.0/#modal-close
在这个网站可以选择和自己电脑系统匹配的whl文件包。
我的是这个:
这里要注意:Python的版本,电脑的位数。
关键步骤:
1、打开conda命令台,进入对应虚拟环境; 2、输入pip install D:\MSCOCO\h5py-2.10.0-cp36-cp36m-win_amd64.whl (注意这里改成自己下载的whl文件路径,前提是uninstall 以前的H5py); 3、sucessfully!
最后再返回代码,运行,没问题了!
本文转自 https://blog.csdn.net/qq_38883844/article/details/105069064,如有侵权,请联系删除。
OpenCL
Ubuntu安装OpenCL
下载 OpenCl SDK https://software.intel.com/content/www/us/en/develop/tools/opencl-sdk/choose-download.html ,选择linux平台,解压。
sudo ./install.sh
安装 clinfo
$ clinfo
Number of platforms 1
Platform Name Intel(R) CPU Runtime for OpenCL(TM) Applications
Platform Vendor Intel(R) Corporation
Platform Version OpenCL 2.1 LINUX
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_depth_images cl_khr_3d_image_writes cl_intel_exec_by_local_thread cl_khr_spir cl_khr_fp64 cl_khr_image2d_from_buffer cl_intel_vec_len_hint
Platform Host timer resolution 1ns
Platform Extensions function suffix INTEL
Platform Name Intel(R) CPU Runtime for OpenCL(TM) Applications
Number of devices 1
Device Name Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
Device Vendor Intel(R) Corporation
Device Vendor ID 0x8086
Device Version OpenCL 2.1 (Build 0)
Driver Version 18.1.0.0920
Device OpenCL C Version OpenCL C 2.0
Device Type CPU
Device Profile FULL_PROFILE
Device Available Yes
Compiler Available Yes
Linker Available Yes
Max compute units 8
Max clock frequency 3400MHz
Device Partition (core)
Max number of sub-devices 8
Supported partition types by counts, equally, by names (Intel)
Max work item dimensions 3
Max work item sizes 8192x8192x8192
Max work group size 8192
Preferred work group size multiple 128
Max sub-groups per work group 1
.....
Global 64 bytes
Local 0 bytes
Max size for global variable 65536 (64KiB)
Preferred total size of global vars 65536 (64KiB)
Global Memory cache type Read/Write
.........
成功找到 Intel(R) HD Graphics
optional 安装 NEO https://github.com/intel/compute-runtime 选个版本
mkdir neo
cd neo
wget https://github.com/intel/compute-runtime/releases/download/20.30.17454/intel-gmmlib_20.2.2_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/20.30.17454/intel-igc-core_1.0.4427_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/20.30.17454/intel-igc-opencl_1.0.4427_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/20.30.17454/intel-opencl_20.30.17454_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/20.30.17454/intel-ocloc_20.30.17454_amd64.deb
wget https://github.com/intel/compute-runtime/releases/download/20.30.17454/intel-level-zero-gpu_0.8.17454_amd64.deb
sudo dpkg -i *.deb
本文转自 https://aiethan.blog.csdn.net/article/details/107834147,如有侵权,请联系删除。
nvidia.dali 模块安装方法
源码:
Release DALI v1.6.0 · NVIDIA/DALI · GitHub
CUPY
python 中安装cupy库。CuPy(A NumPy-compatible array library accelerated by CUDA)是NumPy兼容多维数组在CUDA上的实现,
因此安装时需要·==根据cuda版本安装 == nvcc -V
# For CUDA 10.1
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple cupy-cuda101 # 根据自己的版本
注意:!!!
==cupy只能存在一个版本==,可以用
pip list
查询之前是否安装过,如果有需要先卸载:pip uninstall cupy-cudaxxx
,再重新安装。自己安装发现(某篇博客评论也有提到):cuda112版本不能在windows中使用,即使你的版本和cupy版本一致也不可以。如果要必须使用,建议cuda退回11.1(以及之前的版本应该都可以,但是未测试),在重新安装cupy可以正常使用
安装完成,import cupy as cp 后运行程序提示“ImportError: CuPy is not correctly installed”
在不断的卸载、安装cupy,以及各种更新相关依赖包(inda、wheel、pip等)之后,运行程序依旧不断提示“ImportError: CuPy is not correctly installed”
崩溃之前发现有人设置了系统的环境变量,那么这个问题可能是环境变量的问题,于是一不做二不休把电脑和pycharm的环境变量统一修改了一下:
1)电脑环境变量设置 路径:电脑—右键属性—高级系统设置—高级—环境变量。 在用户变量中的Path变量,添加CUDA10.0安装路径到系统内
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\extras\CUPTI\libx64
2)Pycharm环境变量设置 路径:Run—Edit Configurations…—Enviroment variables 添加环境变量

本文转自 https://blog.csdn.net/Zhangrx_/article/details/115006360,如有侵权,请联系删除。
Last updated