吴恩达dl.ai踩坑记录
设备为某垃圾商务本,win10环境,之前从未接触过炼丹,居然去做了什么图形学,很难不流汗黄豆,本人菜鸡,所以踩坑如下,大佬轻喷,配了一个下午环境
踩坑记录如下:
首先安装anaconda,这个自然不必多说,我的是py3.8那一版
注意换源,以下操作与踩坑如下
然后创建python3.6环境 ,这个环境我把它命名为dl
这里jupyternotebook踩坑如下,不要conda install jupyter,这样反正我是出了很多错,直接进navigator下,这里我下的是6.0.3
踩坑1:进入dl环境后输入jupyter notebook之后出现IO错误!
解法:第一个说法是tornado版本太高,果然我一看为5.1,更新为4.5.3之后不再出现IO错误,然而无卵用,最后我还是用了6的版本,这里留一个解法,轻喷
踩坑2:此时出现loop错误?配了一天貌似记不太清楚了,这里比较重要,最后的成功貌似就是更新了kernel
解法:按网上说的,需要更新ipython和pykernel,踩坑:更新失败
解法:请在pip安装时加上-U 或者 --user
然后强制更新ipython和ipykernel 这里pip unistall ipykernel失败
现在强制更新
pip install --ignore-installed -U ipython
pip install --ignore-installed -U ipykernel
原因是prompt_toolkit这依赖的版本不匹配(我这使用的python 3.6)
解决办法就是降低版本(请注意,其实我们有两个toolkit,一个是conda的1.05,一个是pip的3.0.5,这里更新的是pip的3.0.5)
pip install --upgrade prompt-toolkit==2.0.1
注意,以上的踩坑出现的错误均为:jupyternotebook无法打开/jupyternotebook无法连接后台
下面为作业出现的一些乱七八糟的错误:
踩坑4;conda install tensorflow(这里不能这么做),大多数教程貌似都是这个?吴恩达这一版的tensorflow版本很低
我这里pip install tensorflow == 1.2.1
此时python进控制台
import tensorflow as tf
tensorflow报future警告,因为此时numpy为1.19,我们应该适当降低版本,我用了numpy下1.12
此时 pip install numpy=1.12
踩坑5:居然导不进matplotlib,出现cbook相关错误。比如:没有__version___,没有__string__
反正就是matplotlib报错
这里卡了我很久,首先发现:我很早之前的一个错误为在pip install tensorflow之后居然conda install matplotlib造成各种不适配
遂conda uninstall之后重配,这里记录如下
以下操作不涉及conda,均在pip下完成
pip install matplotlib==2.0.2
其中一个出现的错误为cbook相关,网上一个解释是six不适配matplotlib,所以试过pip install six==1.10.0,但是无乱用,仍然报另一个cbook错误。
解决之后出现init错误:
原因:pyparse版本不适配,改为pyparse2.2.0
ps:又更新,作业中出现的一些错误
首先,numpy==1.12.1才能适配tensorflow==1.2.1,之前那个numpy==1.13.1出现大量错误给我卸了
然后是opencv的问题
这里我是win10+py3.6.一开始想适配opencv-python==3.2.0.8居然失败(我他妈找了一天错误,发现stackoverflow上居然没有,我出现的问题是import cv2然后python直接崩溃闪退),于是改为4.0.0.20于是成功
keras我直接配了2.0.那一版本,当时配keras出现了numpy不匹配,于是重装numpy1.12.1
总结以下:吴恩达这个作业够老的,配环境恶心人啊
这里给出一个人的依赖,注意引用的包,尤其注意matplotlib,numpy,tensorflow,pyparse,six的适配,下面也给出我的piplist留作纪念
图片为我的pip list,而代码为网上某作业相关的yml文件
name: deeplearn channels: - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ - defaults dependencies: - bleach=1.5.0=py36_0 - certifi=2016.2.28=py36_0 - cycler=0.10.0=py36_0 - dbus=1.10.20=0 - decorator=4.1.2=py36_0 - entrypoints=0.2.3=py36_0 - expat=2.1.0=0 - fontconfig=2.12.1=3 - freetype=2.5.5=2 - glib=2.50.2=1 - gst-plugins-base=1.8.0=0 - gstreamer=1.8.0=0 - h5py=2.7.0=np112py36_0 - hdf5=1.8.17=2 - html5lib=0.9999999=py36_0 - icu=54.1=0 - ipykernel=4.6.1=py36_0 - ipython=6.1.0=py36_0 - ipython_genutils=0.2.0=py36_0 - ipywidgets=6.0.0=py36_0 - jbig=2.1=0 - jedi=0.10.2=py36_2 - jinja2=2.9.6=py36_0 - jpeg=8d=2 - jsonschema=2.6.0=py36_0 - jupyter=1.0.0=py36_3 - jupyter_client=5.1.0=py36_0 - jupyter_console=5.2.0=py36_0 - jupyter_core=4.3.0=py36_0 - libffi=3.2.1=1 - libgcc=5.2.0=0 - libgfortran=3.0.0=1 - libiconv=1.14=0 - libpng=1.6.30=1 - libsodium=1.0.10=0 - libtiff=4.0.6=2 - libxcb=1.12=1 - libxml2=2.9.4=0 - markupsafe=1.0=py36_0 - matplotlib=2.0.2=np112py36_0 - mistune=0.7.4=py36_0 - mkl=2017.0.3=0 - nbconvert=5.2.1=py36_0 - nbformat=4.4.0=py36_0 - notebook=5.0.0=py36_0 - numpy=1.12.1=py36_0 - olefile=0.44=py36_0 - opencv=3.1.0=np112py36_1 - openssl=1.0.2l=0 - pandas=0.20.3=py36_0 - pandocfilters=1.4.2=py36_0 - path.py=10.3.1=py36_0 - pcre=8.39=1 - pexpect=4.2.1=py36_0 - pickleshare=0.7.4=py36_0 - pillow=3.4.2=py36_0 - pip=9.0.1=py36_1 - prompt_toolkit=1.0.15=py36_0 - ptyprocess=0.5.2=py36_0 - pygments=2.2.0=py36_0 - pyparsing=2.2.0=py36_0 - pyqt=5.6.0=py36_2 - python=3.6.2=0 - python-dateutil=2.6.1=py36_0 - pytz=2017.2=py36_0 - pyzmq=16.0.2=py36_0 - qt=5.6.2=2 - qtconsole=4.3.1=py36_0 - readline=6.2=2 - scikit-learn=0.19.0=np112py36_0 - scipy=0.19.1=np112py36_0 - setuptools=36.4.0=py36_1 - simplegeneric=0.8.1=py36_1 - sip=4.18=py36_0 - six=1.10.0=py36_0 - sqlite=3.13.0=0 - terminado=0.6=py36_0 - testpath=0.3.1=py36_0 - tk=8.5.18=0 - tornado=4.5.2=py36_0 - traitlets=4.3.2=py36_0 - wcwidth=0.1.7=py36_0 - wheel=0.29.0=py36_0 - widgetsnbextension=3.0.2=py36_0 - xz=5.2.3=0 - zeromq=4.1.5=0 - zlib=1.2.11=0 - pip: - enum34==1.1.6 - ipython-genutils==0.2.0 - jupyter-client==5.1.0 - jupyter-console==5.2.0 - jupyter-core==4.3.0 - keras==2.1.3 - markdown==2.6.10 - prompt-toolkit==1.0.15 - protobuf==3.5.0.post1 - pydot==1.2.4 - pyyaml==3.12 - tensorflow==1.4.1 - tensorflow-tensorboard==0.4.0rc3 - werkzeug==0.13 prefix: /home/ubuser/miniconda3/envs/deeplearn