2020年12月

背景

最近想给笔记本安装tensorflow-gpu,然而网上的教程都非常老旧,很多2018、2019年的文章都打着最新的旗号,描述十分混乱。本教程力求给出最新可用的tensorflow-gpu安装教程,本文基于Windows 10和tensorflow2.3。

本文可解决的问题

win10如何安装tensorflow-gpu版本?
tensorflow-gpu版本如何安装?
tensorflow2.3.0如何安装?
MX450显卡如何安装tensorflow-gpu?

目标

安装anaconda
安装cudatoolkit
安装cudnn
安装tensorflow2.3.0,提供GPU支持。
可根据需要选择性阅读。

0 准备工作

1、要想成功安装tensorflow并提供GPU支持,必须保证tensorflow、cudatoolkit、cudnn版本对应。本文描述的版本可以保证对应,建议按照本文建议安装!
2、检查硬件支持。
点击如图所示的图标打开nvidia控制面板。
打开nvidia控制面板
然后点击系统信息,查看支持的cuda版本,如果高于10.1,则可继续阅读本文。如果小于10.1,则本文不适合您的机器,请参考其他资料。
查看系统信息
3、检查软件支持。由于我们想要安装tensorflow2.3,从官网得知,tensorflow2.3需要cuda 10.1,cudnn7.6,所以我们需要提前下载下这些版本的软件。官网给出的软件要求如图。接下来,我们将一一解决软件问题。
软件要求

一、安装anaconda

点击阅读本文章——anaconda安装指导(使用国内源加速)

二、安装cudatoolkit 10.1

1、访问https://developer.nvidia.com/cuda-toolkit-archive,下载cudatoolkit 10.1。请点击图片所示的位置进行下载。
下载cudatoolkit
2、双击下载好的文件,会提示选择目录释放临时文件,直接点击下一步即可。
3、然后进行兼容性检查,进行兼容性检查完成后,会让你选择安装方式,我们此处选择自定义。
选择安装方式
4、然后会让我们选择想要安装的内容。按图片所示展开后两项,这里新版本指将要安装的版本,当前版本是指机器上已经有的版本。如果新版本比当前版本新,就安装否则就把对勾给去掉,保留当前版本。这里我的当前版本比新版本更新,所以我们把对勾去掉。
选择安装内容
5、一直下一步,等待安装完成。

三、安装cudnn 7.6.5

1、下载cudnn 7.6.5。按图片所示操作即可。注意,可能会要求需要注册账号。
cudnn步骤
cudnn步骤
cudnn步骤
cudnn步骤
2、将下载下来的包解压,然后将下表中的文件放到C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1相应目录下。对应关系如下表所示。注意,是把文件放到相应目录下,不是直接替换目录!不是直接替换目录!不是直接替换目录!请严格按下表操作!

解压目录下的文件要放到的位置
bin\cudnn64_7.dll文件C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin下面
include\cudnn.h文件C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\include下面
lib\x64\cudnn.lib文件C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\lib\x64下面

四、安装tensorflow 2.3

1、切换opentuna的pip镜像源。(为了加速)

pip config set global.index-url https://opentuna.cn/pypi/web/simple

2、创建虚拟环境。输入以下命令。

conda create -n tensorflow2 python=3.7

3、激活虚拟环境。

conda activate tensorflow2

4、安装tensorflow2.3。我们使用pip来安装,pip安装后自带gpu支持,不需要额外安装gpu版本。我们此处使用pip而不采用conda,是因为conda中版本可能较旧而且作者使用conda后安装失败。如此处自行使用conda后安装失败并不表示本教程有问题!特此提前说明!强烈建议您在此处根据作者建议使用pip!

pip install tensorflow==2.3

5、验证安装是否成功。输入以下语句,如果如图所示输出了自己的GPU,则表示安装成功!否则安装失败,请检查步骤后重试或向作者提问。

python
import tensorflow as tf
tf.config.list_physical_devices('GPU')

安装成功

支持作者和疑问解答

本文首发于我的学习之路(liguang.wang),欢迎访问!
写文章不易,如果这篇文章有帮到你,希望你能给予一定赞赏。您可以通过当前网站或App的赞赏渠道支持,或者点击此处支持作者
如果对于本文内容有疑问,可以点击此处联系作者

问题描述

安装MariaDB的过程中,速度非常慢,经常超时失败。

解决方法

1、访问https://downloads.mariadb.org/mariadb/repositories/,获取库安装信息。
屏幕截图 2020-12-19 114807.png
2、在列表中选择你的操作系统版本和想安装的MariaDB版本,最后会有一个库安装信息显示出来,如图所示。
屏幕截图 2020-12-19 115027.png
3、将信息复制,使用命令vi /etc/yum.repos.d/MariaDB.repo创建MariaDB.repo文件,将复制的内容写进去,如下所示。

# MariaDB 10.5 CentOS repository list - created 2020-12-19 03:50 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.5/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

4、为了加快速度,我们选用北京外国语镜像,将上面baseurl中的http://yum.mariadb.org替换为https://mirrors.bfsu.edu.cn/mariadb/yum,同时将gpgkey中的http://yum.mariadb.org替换为https://mirrors.bfsu.edu.cn/mariadb/yum,然后:wq保存。
5、使用命令yum -y install MariaDB-client MariaDB-server安装MariaDB,享受飞起来的安装速度吧!

支持作者和疑问解答

本文首发于我的学习之路(liguang.wang),欢迎访问!
写文章不易,如果这篇文章有帮到你,希望你能给予一定赞赏。您可以通过当前网站或App的赞赏渠道支持,或者点击此处支持作者
如果对于本文内容有疑问,可以点击此处联系作者

背景

在安装typecho、wordpress之前,往往需要安装nginx、mysql、php等环境。本文章主要介绍如何在centos7.6上搭建LNMP环境。本文主要参考了腾讯云提供的一些帮助文档,并根据实际情况做了改进,同时将部分镜像优化为清华、北京外国语等国内镜像,可以加速安装和提高成功率!
本文首发于我的学习之路(liguang.wang),欢迎访问!

一、安装nginx

1、执行以下命令,在创建 nginx.repo 文件。

vi /etc/yum.repos.d/nginx.repo

2、敲击i进入编辑模式,输入以下内容。

[nginx] 
name = nginx repo 
baseurl = https://nginx.org/packages/mainline/centos/7/$basearch/ 
gpgcheck = 0 
enabled = 1

:wq保存并退出。
3、使用如下命令安装nginx。

yum install -y nginx

4、执行以下命令,进入conf.d文件夹。

cd /etc/nginx/conf.d

5、备份默认文件。

cp default.conf default.conf.bak

6、新建并编辑配置文件。

vim mysite.conf

7、按下i键,然后写入以下内容。然后:wq保存推出。

server {
 listen       80;
 root   /usr/share/nginx/html;
 server_name  localhost;
 #charset koi8-r;
 #access_log  /var/log/nginx/log/host.access.log  main;
 #
 location / {
       index index.php index.html index.htm;
 }
 #error_page  404              /404.html;
 #redirect server error pages to the static page /50x.html
 #
 error_page   500 502 503 504  /50x.html;
 location = /50x.html {
   root   /usr/share/nginx/html;
 }
 #pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
 #
 location ~ .php$ {
   fastcgi_pass   127.0.0.1:9000;
   fastcgi_index  index.php;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   include        fastcgi_params;
 }
}

8、使用以下命令启动nginx并设置开机启动。

systemctl start nginx
systemctl enable nginx

9、访问服务器IP看是否成功运行

http://你的服务器IP

如果现实类似下图的界面,表示nginx安装成功,请继续进行第二部分的安装!
nginx

二、安装MariaDB

由于MariaDB是兼容mysql的,我们此处选择安装MariaDB。
1、执行以下命令,查看系统是否已经安装过MariaDB。

rpm -qa | grep -i mariadb

2、如果存在类似图片所示的情况,使用如下命令移除。如果没有任何显示则跳过这一步。
结果图片

yum -y remove 包名(可直接复制粘贴上一步的结果)

3、执行下面的命令创建MariaDB.repo文件。

vi /etc/yum.repos.d/MariaDB.repo

4、按下i,写入如下内容。本文采用北京外国语镜像加速安装速度!

# MariaDB 10.4 CentOS repository list - created 2019-11-05 11:56 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = https://mirrors.bfsu.edu.cn/mariadb/yum/10.4/centos7-amd64
gpgkey=https://mirrors.bfsu.edu.cn/mariadb/yum/RPM-GPG-KEY-MariaDB
gpgcheck=1

5、输入:wq保存并推出。
6、执行下面的命令开始安装MariaDB。

yum -y install MariaDB-client MariaDB-server

7、执行下面的命令启动MariaDB并设置开机自动启动。

systemctl start mariadb
systemctl enable mariadb

8、执行下面的命令,如果出现图片所示的情况,表示安装成功,按下\q退出。

mysql

安装成功后的效果

三、安装PHP

1、执行下面的命令更新yum中的软件源。

rpm -Uvh https://mirrors.cloud.tencent.com/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

2、执行下面的命令安装所需的包。

yum -y install mod_php72w.x86_64 php72w-cli.x86_64 php72w-common.x86_64 php72w-mysqlnd php72w-fpm.x86_64

3、执行下面的命令启动php-fpm和设置开机自动启动。

systemctl start php-fpm
systemctl enable php-fpm

4、执行以下命令创建测试文件。

echo "<?php phpinfo(); ?>" >> /usr/share/nginx/html/index.php

5、重启nginx。

systemctl restart nginx

6、访问服务器,如果出现如下界面表示安装完成!

http://你的服务器IP

php安装成功

四、支持作者和疑问解答

写文章不易,如果这篇文章有帮到你,希望你能给予一定赞赏。您可以通过当前网站或App的赞赏渠道支持,或者点击此处支持作者
如果对于本文内容有疑问,可以点击此处联系作者

五、参考资料

部分图片和文字来源于如下链接,在此表示感谢!
https://cloud.tencent.com/document/product/213/38838
https://cloud.tencent.com/document/product/213/38056

背景

今天在给树莓配安装tensorflow的使用,提示tensorflow-2.0.0-cp37-none-linux_armv7l.whl is not a supported wheel on this platform。
出现这个问题,是由于这个whl和系统python版本不匹配导致的。网上有不少教程提供了查看python支持whl名称的方法。
然而,网上的教程非常老旧,按照网上教程操作后,会提示pip has no attribute pep425tags。经过我多次搜集资料和尝试,总算找到了在pip 20.0等版本上可用的命令!

1 已知无效的方法

首先列举对于较新版本的pip无效的方法。如果你使用的是较新版本的pip,使用下面这些python语句,将会提示pip has no attribute pep425tags
无效旧教程一:

import pip
print(pip.pep425tags.get_supported())

无效旧教程二:

import pip._internal
print(pip._internal.pep425tags.get_supported())

上面为目前网上大量充斥的教程,这些均为旧版pip的教程并不适用于pip 20.0及以上版本,甚至不适用于临近pip 20.0的版本
使用上述旧教程,会得到pip has no attribute pep425tags。如下图所示。

在此,经过博主大量搜集资料和尝试,终于找到了在pip 20.0版本上可用的方法。

2 经测试有效的命令

我们可以通过下面这个经过测试有效的命令,来查看当前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]
sys.executable: /home/pi/Softwares/venv3/bin/python
sys.getdefaultencoding: utf-8
sys.getfilesystemencoding: utf-8
locale.getpreferredencoding: UTF-8
sys.platform: linux
sys.implementation:
  name: cpython
'cert' config value: global
REQUESTS_CA_BUNDLE: None
CURL_CA_BUNDLE: None
pip._vendor.certifi.where(): /home/pi/Softwares/venv3/lib/python3.7/site-packages/pip/_vendor/certifi/cacert.pem
pip._vendor.DEBUNDLED: False
vendored library versions:
  appdirs==1.4.3
  CacheControl==0.12.6
  colorama==0.4.3
  contextlib2==0.6.0.post1 (Unable to locate actual module version, using vendor.txt specified version)
  distlib==0.3.0
  distro==1.5.0 (Unable to locate actual module version, using vendor.txt specified version)
  html5lib==1.0.1
  ipaddress==1.0.23
  msgpack==1.0.0 (Unable to locate actual module version, using vendor.txt specified version)
  packaging==20.3
  pep517==0.8.2
  progress==1.5
  pyparsing==2.4.7
  requests==2.23.0
  certifi==2020.04.05.1
  chardet==3.0.4
  idna==2.9
  urllib3==1.25.8
  resolvelib==0.3.0
  retrying==1.3.3 (Unable to locate actual module version, using vendor.txt specified version)
  setuptools==44.0.0 (Unable to locate actual module version, using vendor.txt specified version)
  six==1.14.0
  toml==0.10.0
  webencodings==0.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
  cp37-abi3-linux_armv7l
  cp37-none-manylinux2014_armv7l
  cp37-none-linux_armv7l
  cp36-abi3-manylinux2014_armv7l
  cp36-abi3-linux_armv7l
  cp35-abi3-manylinux2014_armv7l
  cp35-abi3-linux_armv7l
  cp34-abi3-manylinux2014_armv7l
  cp34-abi3-linux_armv7l
  cp33-abi3-manylinux2014_armv7l
  cp33-abi3-linux_armv7l
  cp32-abi3-manylinux2014_armv7l
  cp32-abi3-linux_armv7l
  py37-none-manylinux2014_armv7l
  py37-none-linux_armv7l
  py3-none-manylinux2014_armv7l
  py3-none-linux_armv7l
  py36-none-manylinux2014_armv7l
  py36-none-linux_armv7l
  py35-none-manylinux2014_armv7l
  py35-none-linux_armv7l
  py34-none-manylinux2014_armv7l
  py34-none-linux_armv7l
  py33-none-manylinux2014_armv7l
  py33-none-linux_armv7l
  py32-none-manylinux2014_armv7l
  py32-none-linux_armv7l
  py31-none-manylinux2014_armv7l
  py31-none-linux_armv7l
  py30-none-manylinux2014_armv7l
  py30-none-linux_armv7l
  cp37-none-any
  py37-none-any
  py3-none-any
  py36-none-any
  py35-none-any
  py34-none-any
  py33-none-any
  py32-none-any
  py31-none-any
  py30-none-any

从中我们可以看到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
  cp37-none-manylinux2014_armv7l
  cp37-none-linux_armv7l
  cp36-abi3-manylinux2014_armv7l
  cp36-abi3-linux_armv7l
  cp35-abi3-manylinux2014_armv7l
  cp35-abi3-linux_armv7l
  cp34-abi3-manylinux2014_armv7l
  cp34-abi3-linux_armv7l
  cp33-abi3-manylinux2014_armv7l
  cp33-abi3-linux_armv7l
  cp32-abi3-manylinux2014_armv7l
  cp32-abi3-linux_armv7l
  py37-none-manylinux2014_armv7l
  py37-none-linux_armv7l
  py3-none-manylinux2014_armv7l
  py3-none-linux_armv7l
  py36-none-manylinux2014_armv7l
  py36-none-linux_armv7l
  py35-none-manylinux2014_armv7l
  py35-none-linux_armv7l
  py34-none-manylinux2014_armv7l
  py34-none-linux_armv7l
  py33-none-manylinux2014_armv7l
  py33-none-linux_armv7l
  py32-none-manylinux2014_armv7l
  py32-none-linux_armv7l
  py31-none-manylinux2014_armv7l
  py31-none-linux_armv7l
  py30-none-manylinux2014_armv7l
  py30-none-linux_armv7l
  cp37-none-any
  py37-none-any
  py3-none-any
  py36-none-any
  py35-none-any
  py34-none-any
  py33-none-any
  py32-none-any
  py31-none-any
  py30-none-any

这是真正解决了网上旧教程无效的问题。适用于pip 20.0等新版本的pip。

3 注意

之前旧版本的无效方法是Python语句,而此次有效命令则是pip命令,直接在命令行中输入,不要在Python解释器中输入哦

4 修改记录

2020.9.28 修改部分句子,使语言更通顺。
2020.10.8 改正错别字,纠正了部分不准确的说法。
2020.11.30 修改了部分语句。

盼了好几天的新电脑终于到了,不过有点扎心的就是总感觉被人打开过,因为电源包装袋被叠成了一团,电源在外面-_-,而且感觉后面螺丝有被拧过的痕迹。。。不过开机还是自动释放系统了,说明硬盘至少还没被换过吧,就这样用吧,内存啥的就不知道了,CPU问题应该不大。
花大力气咨询了客服,好在出厂的固态和内存品牌和现在我的电脑上的还是一致的,不过客服报出的序列号后四位和我用软件查到的不一样。本来我还以为实锤翻车了,结果又确认了下他们说的是部件编号,位数是23位的,而我软件查到的并不是23位,很尴尬,我和客服说的应该不是一个东西。所以先自我安慰一下,问题应该不大,有时间去服务点查一查这个部件编号到底一不一致吧。
有一说一,新电脑颜值还是非常高的,很喜欢,只要质量没问题,不想再关心这些问题了。希望有了新电脑,自己好好努力,赶紧把最近几个ddl赶完!