ABSTRACT
descripe :
date : 2018.06.06
platform : NVIDIA GeForce 1080Ti
version : ubuntu - 16.04 LTS(自带的是python3.5,所以在安装tensorflow时,需要注意版本)
NVIDIA-driver - 384.13
CUDA - 9.0
cuDNN - 7.1.2
tensorflow - 1.8
==========================
首先在search your computer中输入upd,进入software&updates,更改下载源(推荐清华或阿里作为下载源。)
首先sudo apt update,然后sudo apt upgrade
下载synaptic (新立得 ——————1款好用的软件包管理器)
修改驱动文件权限
sudo chmod 777 NVIDIA-Linux-x86_64-410.78.run
1. sudo apt-get remove –purge nvidia*
2. sudo vim /etc/modprobe.d/blacklist.conf (sudo apt-get install vim-gtk)
3. add "blacklist nouveau" at the end of file
4. sudo update-initramfs -u
5. sudo reboot
6. Ctrl+Alt+F1
7. lsmod | grep nouveau
8. sudo /etc/init.d/lightdm stop
9. cd ${nvidia_driver_path}
10. sudo sh NVIDIA-Linux-x86_64-384.130.run –no-x-check –no-nouveau-check –no-opengl-files
安装(注意 参数)
sudo ./NVIDIA-Linux-x86_64-384.13.run –no-opengl-files
–no-opengl-files 只安装驱动文件,不安装OpenGL文件。这个参数最重要
–no-x-check 安装驱动时不检查X服务
–no-nouveau-check 安装驱动时不检查nouveau
后面两个参数可不加。
在安装驱动的时候,有一步问你”Would you like to run the nvidia-xconfig utility to automatically update your X configuration file…”什么的,选择 No
11. sudo reboot
sudo sh cuda_9.0.176.1_linux.run --override
~~~~~~~~~~~~~~~
Error: unsupported compiler: 7.3.0. Use --override to override this check.
Missing recommended library: libGLU.so
Missing recommended library: libX11.so
Missing recommended library: libXi.so
Missing recommended library: libXmu.so
Missing recommended library: libGL.so
Error: cannot find Toolkit in /usr/local/cuda-9.0
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installation Failed. Using unsupported Compiler.
Samples: Cannot find Toolkit in /usr/local/cuda-9.0
有一个关键是会让你选择是否安装Graphics Driver for Linux-x86_64:XXXX版本,这个地方必须选择no!否则会覆盖之前的驱动。
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 384.81?
(y)es/(n)o/(q)uit: n
Install the CUDA 9.0 Toolkit?
(y)es/(n)o/(q)uit: y
Enter Toolkit Location
[ default is /usr/local/cuda-9.0 ]:
Do you want to install a symbolic link at /usr/local/cuda?
(y)es/(n)o/(q)uit: y
Install the CUDA 9.0 Samples?
(y)es/(n)o/(q)uit: y
Enter CUDA Samples Location
[ default is /home/ai_group ]:
Installing the CUDA Toolkit in /usr/local/cuda-9.0 ...
Missing recommended library: libGLU.so
Missing recommended library: libX11.so
Missing recommended library: libXi.so
Missing recommended library: libXmu.so
Missing recommended library: libGL.so
Installing the CUDA Samples in /home/ai_group ...
Copying samples to /home/ai_group/NVIDIA_CUDA-9.0_Samples now...
Finished copying samples.
===========
= Summary =
===========
Driver: Not Selected
Toolkit: Installed in /usr/local/cuda-9.0
Samples: Installed in /home/ai_group, but missing recommended libraries
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
***WARNING: Incomplete installation! This installation did not install the CUDA Driver. A driver of version at least 384.00 is required for CUDA 9.0 functionality to work.
To install the driver using this installer, run the following command, replacing
sudo
Logfile is /tmp/cuda_install_3795.log
liuliu@liuliu:~/Downloads/install required package$ sudo sh cuda_9.0.176_384.81_linux.run -silent -driver
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~``
5.1 gedit ./.bashrc
install CUDA 的 5. gedit ./.bashrc,请注意bashrc文件在home路径下,所以需要进入home路径,打开bashrc文件进行编辑。
5.2 source ~/.bashrc
5.3 关闭终端,然后再重启一个新的终端,这一步很重要
1、先从官网https://www.anaconda.com/download/#linux或者https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
下载对应的anaconda版本
2、下载完成后进入下载目录执行以下语句
$ bash ./Anaconda3-5.2.0-Linux-x86_64.sh
#此处将文件名替换成你自己的文件名
3、接下来的安装提示按回车进入下一步,按q跳过License文档,最后输入yes确认
接下来让我们输入安装路径,没特殊情况直接回车默认路径就好
4、安装完成后程序提示我们是否把Anaconda3的binary路径加入到.bashrc,建议添加,这样以后python和ipython命令就会自动使用anaconda Python3.6环境了(全程Yes,默认安装在当前用户的home目录下,注意,最后一步,是问你要不要添加环境变量,默认是NO,最好选择YES.)
5、可以在终端输入$ conda list查看是否安装成功
=========================
sudo apt install python3-pip
sudo pip3 install tensorflow-gpu==1.11.0
=========================
1、建立conda计算环境
conda create -n tensorflow python=3.6
过程中输入y继续进行
2、激活环境,使用 conda 安装 TensorFlow
source activate tensorflow
3、安装tensorflow
pip install --ignore-installed --upgrade https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/gpu/tensorflow_gpu-1.5.0rc1-cp36-cp36m-linux_x86_64.whl
4、测试tensorflow
按照图中命令输入
=========================
1、pycharm下载
https://www.jetbrains.com/pycharm/download/#section=linux
社区版对于我们这些学生大体够用,当然你也可以下载社区版,然后用学校邮箱进行注册,可免费使用
2、解压下载文件
进入下载目录,运行以下解压命令
tar -xzvf pycharm-professional-2018.1.tar.gz
解压后,会生成一个文件
这里写图片描述
3、进入文件bin目录,进行安装
cd pycharm-2018.1/bin
sh ./pycharm.sh
5、pycharm导入tensorflow
File->Settings->Project: 项目名->Project Interpreter
选择Conda Enviroment,再选择Existing enviroment
选择你的tensorflow下的python3.6,例如我的:/home/lee/anaconda3/envs/tensorflow/bin/python3.6
——————————————————————————————————
测试是否安装成功
import tensorflow as tf
hello=tf.constant('Hello, Tensorflow')
sess = tf.Session()
print(sess.run(hello))
--------------------------------------------------------------------------------------------
import tensorflow
报错:ImportError: libcublas.so.9.0: cannot open shared object file: No such file or directory
解决方案:sudo ldconfig /usr/local/cuda-9.0/lib64
---------------------
1、打开终端,激活tensorflow
source activate tensorflow
2、继续安装numpy、pandas、matplotlib,安装方法很简单
conda install numpy
过程中选择yes
=============================================
liuliu@liuliu:~$ conda install -c menpo opencv3
否则,
Ubuntu 在conda 环境下使用cv2.imshow(...)出错,参考:https://blog.csdn.net/lsg_lsg_lsg/article/details/79898962)
================================================================
1、下载mnist数据集
进入http://yann.lecun.com/exdb/mnist/,下载如下图四个文件
这里写图片描述
注意不要去解压下载过来的文件,然后将文件复制到你的python的Project的目录下
在pycharm输入以下代码进行测试
# load MNIST data
import tensorflow.examples.tutorials.mnist.input_data as input_data
mnist = input_data.read_data_sets("MNIST_data/", one_hot=True)
# start tensorflow interactiveSession
import tensorflow as tf
sess = tf.InteractiveSession()
# weight initialization
def weight_variable(shape):
initial = tf.truncated_normal(shape, stddev=0.1)
return tf.Variable(initial)
def bias_variable(shape):
initial = tf.constant(0.1, shape=shape)
return tf.Variable(initial)
# convolution
def conv2d(x, W):
return tf.nn.conv2d(x, W, strides=[1, 1, 1, 1], padding='SAME')
# pooling
def max_pool_2x2(x):
return tf.nn.max_pool(x, ksize=[1, 2, 2, 1], strides=[1, 2, 2, 1], padding='SAME')
# Create the model
# placeholder
x = tf.placeholder("float", [None, 784])
y_ = tf.placeholder("float", [None, 10])
# variables
W = tf.Variable(tf.zeros([784, 10]))
b = tf.Variable(tf.zeros([10]))
y = tf.nn.softmax(tf.matmul(x, W) + b)
# first convolutinal layer
w_conv1 = weight_variable([5, 5, 1, 32])
b_conv1 = bias_variable([32])
x_image = tf.reshape(x, [-1, 28, 28, 1])
h_conv1 = tf.nn.relu(conv2d(x_image, w_conv1) + b_conv1)
h_pool1 = max_pool_2x2(h_conv1)
# second convolutional layer
w_conv2 = weight_variable([5, 5, 32, 64])
b_conv2 = bias_variable([64])
h_conv2 = tf.nn.relu(conv2d(h_pool1, w_conv2) + b_conv2)
h_pool2 = max_pool_2x2(h_conv2)
# densely connected layer
w_fc1 = weight_variable([7 * 7 * 64, 1024])
b_fc1 = bias_variable([1024])
h_pool2_flat = tf.reshape(h_pool2, [-1, 7 * 7 * 64])
h_fc1 = tf.nn.relu(tf.matmul(h_pool2_flat, w_fc1) + b_fc1)
# dropout
keep_prob = tf.placeholder("float")
h_fc1_drop = tf.nn.dropout(h_fc1, keep_prob)
# readout layer
w_fc2 = weight_variable([1024, 10])
b_fc2 = bias_variable([10])
y_conv = tf.nn.softmax(tf.matmul(h_fc1_drop, w_fc2) + b_fc2)
# train and evaluate the model
cross_entropy = -tf.reduce_sum(y_ * tf.log(y_conv))
# train_step = tf.train.AdagradOptimizer(1e-4).minimize(cross_entropy)
train_step = tf.train.GradientDescentOptimizer(1e-3).minimize(cross_entropy)
correct_prediction = tf.equal(tf.argmax(y_conv, 1), tf.argmax(y_, 1))
accuracy = tf.reduce_mean(tf.cast(correct_prediction, "float"))
sess.run(tf.global_variables_initializer())
for i in range(20000):
batch = mnist.train.next_batch(50)
if i % 100 == 0:
train_accuracy = accuracy.eval(feed_dict={x: batch[0], y_: batch[1], keep_prob: 1.0})
print("step %d, train accuracy %g" % (i, train_accuracy))
train_step.run(feed_dict={x: batch[0], y_: batch[1], keep_prob: 0.5})
# 显存不足错误
# print("test accuracy %g" % accuracy.eval(feed_dict={x: mnist.test.images, y_: mnist.test.labels, keep_prob: 1.0}))
a = 10
b = 50
sum = 0
for i in range(a):
testSet = mnist.test.next_batch(b)
c = accuracy.eval(feed_dict={x: testSet[0], y_: testSet[1], keep_prob: 1.0})
sum += c * b
#print("test accuracy %g" % c)
print("test accuracy %g" % (sum / (b * a)))
=================================================
在Linux下,配置Anaconda的环境变量,请参考我的另一篇文章。
以上工作都完成之后,接下来开始输入命令了。
conda install --channel https://conda.anaconda.org/menpo opencv3
如果不行试试这个
conda install -c https://conda.anaconda.org/menpo opencv3
楼主亲测,第一种方法就行得通。
接着就是等待安装了。Linux下询问yes/no的时候,输入yes。
记忆两个比较实用的conda的命令,安装和更新包:
conda install numpy=1.9.3
conda update numpy=1.9.3
========================
conda install -c menpo opencv
最后测试一下,没问题。
import cv2
img = cv2.imread(r'F:\Pictures\tiger.jpg')
cv2.imshow('img', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
=======================================================================
https://www.cnblogs.com/amanda-x/p/7739467.html
Anaconda 是一个包含数据科学常用包的 Python 发行版本。它基于 conda ——一个包和环境管理器——衍生而来。你将使用 conda 创建环境,以便分隔使用不同 Python 版本和不同程序包的项目。你还将使用它在环境中安装、卸载和更新包。通过使用 Anaconda,处理数据的过程将更加愉快。
你可以使用 conda 创建环境以隔离项目。要创建环境,请在终端中使用 conda create -n env_name list of packages
。在这里,-n env_name
设置环境的名称(-n
是指名称),而 list of packages
是要安装在环境中的包的列表。例如,要创建名为 my_env
的环境并在其中安装 numpy,请键入 conda create -n my_env numpy
。
创建环境时,可以指定要安装在环境中的 Python 版本。这在你同时使用 Python 2.x 和 Python 3.x 中的代码时很有用。要创建具有特定 Python 版本的环境,请键入类似于 conda create -n py3 python=3
或 conda create -n py2 python=2
的命令。实际上,我在我的个人计算机上创建了这两个环境。我将它们用作与任何特定项目均无关的通用环境,以处理普通的工作(可轻松使用每个 Python 版本)。这些命令将分别安装 Python 3 和 Python 2 的最新版本。要安装特定版本(例如 Python 3.3),请使用 conda create -n py python=3.3
。
创建了环境后,在 OSX/Linux 上使用 source activate my_env
进入环境。在 Windows 上,请使用 activate my_env
。
进入环境后,你会在终端提示符中看到环境名称,它类似于 (my_env) ~ $
。环境中只安装了几个默认的包,以及你在创建它时安装的包。你可以使用 conda list
检查这一点。在环境中安装包的命令与前面一样:conda install package_name
。不过,这次你安装的特定包仅在你进入环境后才可用。要离开环境,请键入 source deactivate
(在 OSX/Linux 上)。在 Windows 上,请使用 deactivate
。
共享环境这项功能确实很有用,它能让其他人安装你的代码中使用的所有包,并确保这些包的版本正确。你可以使用 conda env export > environment.yaml
将包保存为 YAML。命令的第一部分 conda env export
用于输出环境中的所有包的名称(包括 Python 版本)。
将导出的环境输出到终端中
上图中,你可以看到环境的名称和所有依赖项及其版本。导出命令的第二部分 > environment.yaml
将导出的文本写入到 YAML 文件 environment.yaml
中。现在可以共享此文件,而且其他人能够用于创建和你项目相同的环境。
要通过环境文件创建环境,请使用 conda env create -f environment.yaml
。这会创建一个新环境,而且它具有同样的在 environment.yaml
中列出的库。
如果忘记了环境的名称(我有时会这样),可以使用 conda env list
列出你创建的所有环境。你会看到环境的列表,而且你当前所在环境的旁边会有一个星号。默认的环境(即当你不在选定环境中时使用的环境)名为 root
。
如果你不再使用某些环境,可以使用 conda env remove -n env_name
删除指定的环境(在这里名为 env_name
)。
对我帮助很大的一点是,我的 Python 2 和 Python 3 具有独立的环境。我使用了 conda create -n py2 python=2
和 conda create -n py3 python=3
创建两个独立的环境,即 py2
和 py3
。现在,我的每个 Python 版本都有一个通用环境。在所有这些环境中,我都安装了大多数标准的数据科学包(numpy、scipy、pandas 等)。
我还发现,为我从事的每个项目创建环境很有用。这对于与数据不相关的项目(例如使用 Flask 开发的 Web 应用)也很有用。例如,我为我的个人博客(使用 Pelican)创建了一个环境。
在 GitHub 上共享代码时,最好同样创建环境文件并将其包括在代码库中。这能让其他人更轻松地安装你的代码的所有依赖项。对于不使用 conda 的用户,我通常还会使用 pip freeze
(在此处了解详情)将一个 pip requirements.txt
文件导出并包括在其中。
========================================================================
https://blog.csdn.net/ksws0292756/article/details/79192268
anaconda search -t conda 要找的包
然后在找到自己需要的包和相应链接,安装即可
如果,上述链接没有自己需要的包,那么本地下载安装包,然后本地安装
使用source activate 环境名 命令进入虚拟环境,然后使用pip install 文件包所在的位置和文件名
例如:(tensorflow) liuliu@liuliu:~$ pip install /home/liuliu/Downloads/Keras-2.0.3.tar.gz
在conda环境中使用pip安装的包,在该conda环境下,使用conda list可以查看到,但是在pycharm的setting->project interpreter中是查看不到的,但是不影响使用。