那些年的坑坑洼洼

脱坑指南: 系统:ubantu16.04 Win10 anaconda3.5.2 pycharm2018.3

  • pytorch
    • AttributeError: module 'torch' has no attribute 'Module'
    • torchvision.transforms没有Resize函数问题
  • python文件写入问题
    • TypeError: a bytes-like object is required, not 'str'
  • keras
    • Win10 Anaconda conda install 命令安装CPU版本的keras 闪退问题解决
  • python
    • python回退问题
  • anaconda
    • conda install visdom问题
  • 服务器配环境
    • 装Anaconda
    • 装tensorflow-gpu
  • opencv
    • 关于装opencv问题
    • cv2.error: OpenCV(3.4.2) c:\miniconda3\conda-bld\opencv-suite_1534379934306\work\modules\imgproc\src\color.hpp:253: error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function 'cv::CvtHelper

pytorch

AttributeError: module ‘torch’ has no attribute ‘Module’

最近在学pytorch,然后想手敲一下pytorch对于LeNet的实现已加深理解.然后就有了一下的笑话:

  1. 敲完之后运行,** AttributeError: module ‘torch’ has no attribute ‘Module’** ;
  2. 由于我装的是pytorch1.0版本,而官方代码是在pytorch0.4.1这个版本下写的。所以我的想法是创建一个虚拟环境,装pytorch0.4.1版本;
  3. 本来想打开anaconda的图形化界面,然后发现根本打不开。问题如下:==段错误 (核心已转储)==明明昨天还可以打开的,后面再想想怎么解决吧!先把这个弄好再说;
  4. 创建虚拟环境conda create -n pytorch0.4.1 python=3
  5. 去pycharm里面选择编译器interpreter
  6. 直接在里面装了pytorch0.4.1(在这个里面装比较慢,这个好像是从国外源下载的)
  7. 开开心心的运行,问题依然存在,这是什么操作,包都一样了,怎么会没有这个参数呢?!;
  8. 找到没有的参数class Net(nn.Module):,换了一个有的参数class Net(nn.ScriptModule):
  9. 一运行,报错==AttributeError: module ‘torch’ has no attribute ‘Conv2d’==卷积层都没有,不可能啊!!!然后开始从头检查代码,发现import torch as nn ,而官方用的是import torch.nn as nn
  10. 问题解决。。。。。。真是无语凌噎

torchvision.transforms没有Resize函数问题

更新torchvision包即可解决,但是现在清华源好像不更新了,害的我去pycharm中更新(贼慢)。建议换为中科大的源

conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/

conda config --set show_channel_urls yes

python文件写入问题

TypeError: a bytes-like object is required, not ‘str’

代码如下:

fp.write(str(dir_info[i]+'\n')).encode("utf-8")

google半天不得结果,有说打开文件的方式不对的
有说把“utf-8"改为”byte“的,始终没有解决
结果是是自己眼瞎
正确写法如下:
少了个括号

fp.write((str(dir_info[i]+'\n')).encode("utf-8"))

keras

Win10 Anaconda conda install 命令安装CPU版本的keras 闪退问题解决

参考:亲测有效

python

python回退问题

ananconda3.5.2 win10版本默认的python版本是3.7
虚拟环境克隆base环境
无法使用 condainstall python=3.5
python版本没办法回退,只能自己去重新创建一个环境,指定python版本

anaconda

conda install visdom问题

应该是换了中科大的源
conda install visdom直接找不到
pip install visdom 安装的不在python环境中
conda install -c srivasv visdom
亲测有效
参考链接

服务器配环境

就不说装系统的艰难过程了,双系统装的我想死

装Anaconda

装之前先加个权限,不加好像也没什么影响

chmod +x  Anaconda3-5.2.0-Linux-x86_64.sh

然后,亲车熟路

bash Anaconda3-5.2.0-Linux-x86_64.sh

一路回车,yes
最后一个没有装vscode,选NO
Anaconda安装完成

装tensorflow-gpu

我感觉真的要吐血了
网上的教程,很多,,,很多
然后直接开搞
比如
参考
图中有的地方还是要自己改的
比如第一个坑
配了要立即生效才对

source ~/.bashrc

后面的坑我就不说,坑死了

那些年的坑坑洼洼_第1张图片
这里得改改 /usr/local/cuda
我装的9.0这里变成了 /usr/local/cuda-9.0
这位博主也装的9.0 不知道为什么不一样
然后 然后

conda create -n tensorflow Python=3.6 #创建conda环境
source activate tensorflow #激活环境

然后,我没有用pip 我怕跟外边的大环境冲突

conda install tensorflow-gpu

然后 我特么 真想骂人

那些年的坑坑洼洼_第2张图片
这意思是我还要装cuda 和cudnn
我的流量啊 我特么的

。。。

我以为是我的环境变量没弄上去
也就是上面的第一个坑那里
然后打开

gedit ~/.bashrc

mmp果然没有弄上去
于是又弄了一波
再去安装
同样的结果。。。。。。。。
认栽 装吧!!
流量在烧啊 烧 啊啊

另外 安装cuda和cudnn坑也多
cuda
那些年的坑坑洼洼_第3张图片
cudnn还得你自己去官网下,还要自己注册账号才给你下。。。。。。。。

也就是说你的cuda和cudnn是装在外边的,如果你想用虚拟环境,多个环境,都想用这个,你都得重新装过
我特别试了试再创建一个虚拟环境
一样的 还是叫你重新装cuda 和cudnn
所以如果想按照这种模式
1.装cuda
2.装cudnn
3.装tensorflow
那你的这个tensorflow只能在外边大环境用
上面的那个博主我不知道他试了没,在他的虚拟环境下我觉得是不行的

然后我就看到了这篇博文,相见恨晚

我真的是无语了
虚拟环境,简单快捷,只是每个环境都要装

简单粗暴

大环境装一个就够了
只不过,看大家需求吧
如果环境多,那就老实虚拟环境装,多装就多装,防崩!!!
如果只是安装一个tensorflow,装在大环境是可取的。我只是怕环境多了,冲突,所以用了虚拟环境。
还有就是装了一个,包肯定下载了,可以自己去包里找出来,自己手动安装没有试过。应该是可行的。

实测 :激活虚拟环境可用pip装,我就不知道以前为什么我用pip装 结果装到别的地方去了。。。。害我怕了这么久

opencv

关于装opencv问题

网上一大堆教程,但是不是都适合自己,前面好几次都装崩了,今天摸索到个好方法:
直接去pycharm中装

cv2.error: OpenCV(3.4.2) c:\miniconda3\conda-bld\opencv-suite_1534379934306\work\modules\imgproc\src\color.hpp:253: error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function ‘cv::CvtHelper,struct cv::Set<1,-1,-1>,struct cv::Set<0,2,5>,2>::CvtHelper’

这个问题
参考
但是又有了这个问题

AttributeError: 'NoneType' object has no attribute 'astype'

检查路径
参考
路径不能有中文
参考

python list问题

list.append(num)

x=[1.1,2.3,3,]
x=x.append(412.55)
print(x)

返回的却是空值
这我就蒙蔽了
网上查找之后
大概是这样的
x.append()改变了原来的值
但是新的显然是没有的
比如

x=[1.1,2.3,3,]
x1=x.append(412.55)
print(x1)
print(x)
None
[1.1, 2.3, 3, 412.55]

就是这样的效果
所直接用x.append(412.55)
不要赋值

list-int

今天突发奇想,一个list直接减去一个数,比如x=[1.1,2.3,3,]
我全部减去1
但是这样是不可行的
只能用x[:] = [a - 1 for a in x]
或者是转换为array
参考

你可能感兴趣的:(bug,python)