很基础的问题,但是当时难倒了我这个菜鸡
可能会有错,仅供参考哈
2、python 一个.py文件如何调用另一个.py文件中的类和函数
a、在同一个文件夹中
调用函数:1)import A A.add(1,2)
2)from A import add add(1,2)
调用类:
1)from A import A a=A(2,3) a.add( )
2)import A a=A.A(2,3) a.add( )
b、在不同的文件夹中
import sys
sys.path.append(r’E:\python\project’)
import A
a=A.A(2,3)
a.add( )
3、在服务器中报错:ModuleNotFoundError: No module named ‘coloredlogs’
直接在服务器上安装coloredlogs,
在命令行运行 pip install coloredlogs --user(一般权限不够就+–user)
4、在跑代码时一定要看readme这个文件
--------------- 运行代码的命令-------Run Command-------
python main.py --no_epoch 10000 --batch_size 8 --train_dir
并且一般都要下载数据集,自己下载!
5、显示tensorflow差某些“contribute”等组件
原因就是tensorflow的版本过高,按照需要降低版本(readme.txt)
一般安装1.6.0即可:pip install tensorflow==1.6.0 -i https://pypi.douban.com/simple
6、python main.py --no_epoch 10000 --batch_size 8 --train_dir
python main.py --no_epoch 10000 --batch_size 8 --train_dir <D:\my_subject\mindboggle\example_mri_data\test.nii>
7、RuntimeError: torch.cuda.FloatTensor is not enabled.
将当前脚本中的.cuda改为.cpu
8、Could not find a version that satisfies the requirement torch == 1.3.0 (from version:0.1.2. 0.1.2.post1. 0.1.2.post2)
No matching distribution found for torch == 1.3.0
三种解决方法:
a)更新pip python -m pip install --upgrade pip(没用,pip已经是最高的版本)
b)pip install --user torch==1.3.0 -f https://download.pytorch.org/whl/torch_stable.html -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com(貌似有用,参见博客https://blog.csdn.net/night098/article/details/104324810/)
9、在服务器在安装sklearn报错,
直接改为安装Scikit-Learn(sklearn的全称)
https://blog.csdn.net/EWBA_GIS_RS_ER/article/details/84671406?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare
https://www.cnblogs.com/RB26DETT/p/11620693.html
10、一般都是在服务器上跑代码,在本地的pychram上改代码,再用xftp进行上传
11、 from sklearn.covariance import GraphLassoCV
ImportError: cannot import name ‘GraphLassoCV’
一般情况下,都是因为命名问题所导致得,找不到当前得graphlassocv
解决办法:直接在sitepackges找到sklearn得文件夹,再打开covariance文件夹,看一下有没有这个graphlassocv,
在我的路径下没有graphlassocv,只有_graph_lasso
将代码改为from sklearn.covariance import _graph_lasso
12、ERROR: Cannot uninstall ‘scikit-learn’. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
找到scikit-learn *.egg-info,一般就在usr/lib/pythonX或者其他安装目录如:/home/dhy/anaconda3/lib/python3.6/site-packages等路径里,可以直接在/目录下全局搜索。然后删掉即可。
其他的package遇到这种情况方法也通用,搜索.egg-info,找到后删除即可
13、如果很多安装了import不了,就尝试使用.whl得文件安装方式进行安装
14、在服务器中,激活自己得虚拟环境之后,可以使用pip进行安装
pip install pytorch=1.4.0 -i https://pypi.douban.com/simple
15、在服务器中安装torch-sparse得cuda版本与torch 安装得cuda版本不同,造成不匹配
在网站 https://pytorch-geometric.com/whl/torch-1.5.0.html
下载相应得cuda版本得torch-sparse文件,,安装命令:pip install torch_sparse-0.6.4+cu102-cp36-cp36m-linux_x86_64.whl
16、NameError: name ‘math’ is not defined
第一种情况:没有引入math模块(没有成功引入某些模块或者函数)——————import用法不当
直接添加import math
preproces_adj缺少define,在前面加上引用得源.py,写成utils.preproces_adj
17、from theano.tensor.signal.pool import downsample——> ImportError: cannot import name downsample
查找资料发现downsample已经改为pool将上面代码改为from theano.tensor.signal import pool
代码中运用到downsample的地方也要改掉
子采样
pooled_out = downsample.max_pool_2d(
input=conv_out,
ds=poolsize,
ignore_border=True
)
这里直接将downsample改为pool会出错,因为里面相应的函数有变化
查看pool.py的源码,发现downsample.max_pool_2d()与pool. pool_2d()函数功能相同,用ws代替ds
子采样
pooled_out = pool.pool_2d(
input=conv_out,
ws=poolsize,
ignore_border=True
)
18、在服务器上运行 (xshell)显示 File"/home/tj/.conda/envs/TJ/lib/python3.6/site-packages/lasagne/layers/pool.py"
解决办法:直接在xftp里面里面打开这个路径,然后进行修改即可
19、一旦找不到某种组件或者库,直接在下面得网址进行搜索即可(不仅仅是python ,freesurfer也可以)
https://pypi.org/project/freesurfer-surface/
20、打开surf文件夹中得 lh.white,用记事本打开是乱码
第一步:安装freesurfer_surfce pip install --user freesurfer-surface
第二步: 运行代码
from freesurfer_surface import Surface
surface = Surface.read_triangular(‘HLN-12-1.white’)
print(surface.vertices)
print(surface.triangles)
21、运行readvertices.py有时候显示AssertionError
22、from certifi import where 显示certifi没有where这个选项
直接在anaconda promt里面输入:pip install certifi==2018.1.18即可解决
23、 raise RuntimeError(‘Could not locate METIS dll. Please set the METIS_DLL environment variable to its full path.’)
RuntimeError: Could not locate METIS dll. Please set the METIS_DLL environment variable to its full path.
24、RuntimeError:CUDA error:out of memory【https://www.it610.com/article/1288577927021142016.htm】
默认使用得GPU内存不足
在操作系统输入如下:查一下memory现在得状态:nvidia-smi
在要运行得python 文件中添加以下内容:
import os
os.environ[“CUDA_VISIBLE_DEVICES”]=‘1’
还有另外一种修改方法:将batch_size修改为较小得值
pytorch出现RuntimeError: CUDA out of memory.
无论batch-size设置多小也是会出现这个问题的,我的原因是我将pytorch升级到了1.0.1,然后出现了这个问题
RuntimeError: CUDA out of memory. Tried to allocate 823.88 MiB (GPU 0; 7.93 GiB total capacity; 6.96 GiB already allocated; 189.31 MiB free; 10.26 MiB cached)
你可以监控一下之GPU的使用情况 ,使用下面的命令
watch -n 0.1 nvidia-smi
在期间会出现GPU的使用率达到99%,估计是没有释放GPU内存吧。
解决方法
我出现问题的代码,在输入到网络里面 ,如下:output = net(input,inputcoord)
将这个代码修改成
with torch.no_grad():
output = net(input,inputcoord)
附带
在调试低版本的pytorch源程序的时候也会出现警告
UserWarning: volatile was removed and now has no effect. Use with torch.no_grad():
instead.也可以在前面添加下面的解决这个问题
with torch.no_grad():
25、ImportError: libcusparse.so.10.0: cannot open shared object file: No such file or directory
由于是自己安装了anaconda,并且是在自己得虚拟环境中运行得,所以会差这个组件
从/usr/local/cuda/lib64中查找libcusparse.so.10.0然后将其移动到我得虚拟环境中去/tj/anaconda3/lib里面即可
26、RuntimeError: No such operator torch_sparse::cuda_version
应该是在torch_sparse与cuda得版本不匹配造成得,
由于cuda得版本是10.0 安装得torch是1.3.1 则通过命令安装torch_sparse
pip install torch-sparse==0.4.3
27、如果已经安装了torch,用本地得方法安装torchvision时,可能需要另外得版本
针对上述情况,则直接用pip install torchvision这种方法来安装,这样可以根据已经安装得torch版本来匹配适合得torchvision(其实没有报错说非要安装torchvision就可以不管,毕竟哈哈哈哈没报错)
28、报错:ModuleNotFoundError: No module named ‘torch_scatter’
暂时直接用命令进行安装: pip install torch-cluster==1.4.5
29、from torch_sparse import SparseTensor ImportError: cannot import name ‘SparseTensor’
解决办法: This issue seems to be solved by upgrading torch-sparse or downgrading torch-geometric(1.3.2).
24、Cannot uninstall ‘html5lib’. It is a distutils installed project and thus we cannot accurately…
原因:可能的原因,可能之前的第三方库是通过离线文件方式安装的, 删除相应的egg-info后可以尝试解决。
解决办法:anaconda3——lib——site-packges——删除html5lib-1.0.1.dist-info
(若是在linux中,中间还有个步骤:在lib后面还有个python3.6)
25、服务器得cuda版本是10.0,但是安装了tensorflow1.6.0-gpu,出现错误:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
分析:由于更改cuda得版本风险太大,但是现在得tensorflow版本与cuda得版本也不匹配,所以直接重新安装tensorflow的版本
现在有以下几个版本得进行选择:tensorflow-2.0.0-cp36-cp36m-manylinux2010_x86_64.whl
tensorflow-1.14.0-cp36-cp36m-manylinux1_x86_64.whl
tensorflow-1.13.1-cp36-cp36m-manylinux1_x86_64.whl(ok)