踩坑无数后,极速安装TensorFlow2.1(CPU版)和OpenCV

关于安装Anaconda和Pycharm / VSCode的教程很多,在这里就不赘述了,我们直接进入主题,TensorFlow2.X系列版本一经发行就备受好评,但是一直没有机会安装,最近想跟着中国大学mooc里最帅的北大曹健老师(我觉得神经网络方面讲的最适合入门的,中国大学mooc好评刷爆)学学TensorFlow2.1,然后就来安装......一路踩坑,接着一分钟安好???玄学 or 科学???下面来分享分享。

硬件环境:Surface Laptop3(win10 + 8G内存 + i5-1035G7) 

这低廉的配置显然不能支持CUDA,没有GPU并行计算的加持,只能安装CPU版本的。

曹健老师的视频讲的很简单(需要安装GPU版本的,可以按照老师的视频“第一讲 1.8节”安装,安装CPU版本的接着看啦),先创建一个自己的环境:(注意的是-n后面的参数是自己创建的环境名,可以自己定义)

conda create -n TF2.1 python=3.7

在Proceed([y] / n)选y后稍等片刻就安装好了,安装完成后进入环境:(TF2.1是你前面创建的环境名哦,记得改成自己的)

conda activate TF2.1

特别特别要注意!!!接下来安装TensorFlow2.1,老师用的是pip install tensorflow==2.1,网上的很多教程也用的是这一句,然后引起了各种报错,比如因为网络原因的加载异常,Tendorflow安装出错: Could not find a version that satisfies the requirement grpcio>=1.8.6;Could not find a version that satisfies the balabalabala......让我重度怀疑自己的laptop3是不是只能用来摊鸡蛋了(请你保持一个程序员的冷静!)去网上找答案,网上的教程真可谓五花八门,有的是让检查python版本是不是32位,有的让手动更新各种软件包(更新方法:conda update --all 我给你更新个全家桶)...然并卵都没有什么用,也不知道他们是怎么解决问题的(咱也不敢说,咱也不敢问),浪费了一晚上的时间并没有什么用,众多的答案都集中在了让换成清华的镜像源,具体方法详见我上一条博客https://blog.csdn.net/Fox_Alex/article/details/104871074(这是传送门),然后我把镜像源换了又换,排列了又组合(因为有教程说需要在加/win-64/,类似下面)

  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/win-64/
  - http://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/win-64/

然鹅下面展示的是我自己用的,不清楚为什么要加后面那个,然鹅加上也没有用emmmm

- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

每次的下载都会因为网络莫名其妙的断掉,安装过程异常艰辛,然而都无疾而终,直觉告诉我是网络的问题,但是为什么?我明明已经改了.condarc文件...就这样度过了三个小时,然后试了试用conda安装:(conda和pip的安装包存放路径不一样,一起使用容易让包冗余,难以管理)

conda install tensorflow

结果一分钟不到安装好了,并测试通过(黑人脸问号)

测试代码:

import tensorflow as tf

tensorflow_version = tf.__version__
gpu_available = tf.test.is_gpu_available()

print("tensorflow version", tensorflow_version, "\tGPU available:", gpu_available)

a = tf.constant([1.0, 2.0], name = "a")
b = tf.constant([1.0, 2.0], name = "b")
result = tf.add(a, b, name = "add")
print(result)

  当输出最后一行计算结果,就算成功:

一个简短的小结:.condarc更改的是conda的镜像源,和pip并没有什么关系,当然pip的源也可以更改(本身的源访问国外,会比较慢),网上有很多教程,这里就不赘述了。

接下来讲Opencv4.2的安装,Opencv的安装真可谓一股清流(恶心心),采用下面这行代码就行:

conda install -c menpo opencv 

等安装好以后,然后最神奇的事情就发生了,在命令行的python环境下测试:

显示已安装,然后在VSCode测试:(测试前记得换成你安装了OpenCV的python解释器,换好后重启VSCode【重启的这一步是祈福用的,心诚则灵,防止玄学】!)

然后....我仿佛被嘲笑了???找不到指定模块???网上的教程五花八门,基本都说的天花乱坠,不知所云,就感觉我的电脑需要一波女娲补天般的操作才可安装,抱歉...我不可以!

解决办法有两种:

  1. 如果你从官网下载的OpenCV文件,打开它的opencv\build\python\cv2,之后会看到有几个文件夹,然后需要找到对应自己python版本的文件夹打开它,找一个叫cv2.cp37-win_amd64.pyd的文件(可能会和我的文件有点差别,如果你是python版本和我的不相同的话),将它放到你要写的py文件的同一目录就OK了;
  2. 如果你按照我上面采用conda方式安装,请在Anaconda文件夹的\Lib\site-packages里找到cv2文件夹里(或者在这个下面就有)找cv2.cp37-win_amd64.pyd的文件,然后将它放到你要写的py文件的同一目录就OK。

OpenCV的测试代码:(记得顺手更新一波PyLint+更改一些设置,因为一些cv的函数可能会在显示找不到,很影响视觉感受和心情哎,传送门:https://www.cnblogs.com/ManWingloeng/p/10758418.html

import cv2
import numpy as np
img = cv2.imread('C:\\Users\\28912\\Pictures\\Camera Roll\\test.jpg')#图片路径记得换自己的哟
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

当加载出图片就OK了!总的来说,一波三折折折折折折,本来事情可以很简单,但是乱七八糟的教程就会很混乱,一些基本的概念还是要懂得,多总结多踩坑...我真棒emmmmm,但还存在一些问题,比如写用到OpenCV库的代码,每次都需要手动加入cv2.cp37-win_amd64.pyd文件很麻烦,后面想办法解决这个问题。

Guess you like

Origin blog.csdn.net/Fox_Alex/article/details/105108607