21case-tf “完成chapter-1/2/3”

今天在家里的ubuntu-1804环境,python2.7+Anaconda2使用conda国内源,在“NVIDIA-SMI 440.33.01 Driver Version: 440.33.01 CUDA Version: 10.2”条件下,安装conda install tensorflow-gpu==1.13.1版本,成功验证chapter_3的slim模型微调功能。

其中,如果使用1.8.0等底版本的tf,无法兼容cuda10(我的系统是1804),运行python会出现调用gpu的失败打印,研究下来tensorflow-gpu的1.13.1可以兼容cuda10,,另外,建议不要使用pip install,而是使用conda install更容易快速安装包,具体安装包如下:

(21exp-gpu) wangwei@falls:~/21case/21-Examples/chapter_3$ conda list

_libgcc_mutex             0.1                        main    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

_tflow_select             2.1.0                       gpu    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

absl-py                   0.8.1                    py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

astor                     0.8.0                    py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

backports                 1.0                        py_2    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

backports.weakref         1.0.post1                  py_1    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

blas                      1.0                         mkl    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

c-ares                    1.15.0            h7b6447c_1001    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

ca-certificates           2019.11.27                    0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

certifi                   2019.11.28               py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

cudatoolkit               10.0.130                      0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

cudnn                     7.6.5                cuda10.0_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

cupti                     10.0.130                      0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

enum34                    1.1.6                    py27_1    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

funcsigs                  1.0.2                    py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

futures                   3.3.0                    py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

gast                      0.3.2                      py_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

grpcio                    1.16.1           py27hf8bcb03_1    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

h5py                      2.9.0            py27h7918eee_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

hdf5                      1.10.4               hb1b8bf9_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

intel-openmp              2019.4                      243    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

keras-applications        1.0.8                      py_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

keras-preprocessing       1.1.0                      py_1    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

libedit                   3.1.20181209         hc058e9b_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

libffi                    3.2.1                hd88cf55_4    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

libgcc-ng                 9.1.0                hdf63c60_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

libgfortran-ng            7.3.0                hdf63c60_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

libprotobuf               3.11.2               hd408876_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

libstdcxx-ng              9.1.0                hdf63c60_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

linecache2                1.0.0                    py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

markdown                  3.1.1                    py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

mkl                       2019.4                      243    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

mkl-service               2.3.0            py27he904b0f_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

mkl_fft                   1.0.15           py27ha843d7b_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

mkl_random                1.1.0            py27hd6b4f25_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

mock                      3.0.5                    py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

ncurses                   6.1                  he6710b0_1    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

numpy                     1.16.5           py27h7e9f1db_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

numpy-base                1.16.5           py27hde5b4d6_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

openssl                   1.1.1d               h7b6447c_3    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

pip                       19.3.1                   py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

protobuf                  3.11.2           py27he6710b0_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

python                    2.7.17               h9bab390_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

readline                  7.0                  h7b6447c_5    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

scipy                     1.2.1            py27h7c811a0_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

setuptools                42.0.2                   py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

six                       1.13.0                   py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

sqlite                    3.30.1               h7b6447c_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

tensorboard               1.13.1           py27hf484d3e_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

tensorflow                1.13.1          gpu_py27hcb41dfa_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

tensorflow-base           1.13.1          gpu_py27h8d69cac_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

tensorflow-estimator      1.13.0                     py_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

tensorflow-gpu            1.13.1               h0d30ee6_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

termcolor                 1.1.0                    py27_1    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

tk                        8.6.8                hbc83047_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

traceback2                1.4.0                    py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

unittest2                 1.1.0                    py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

werkzeug                  0.16.0                     py_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

wheel                     0.33.6                   py27_0    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

zlib                      1.2.11               h7b6447c_3    https://mirrors.ustc.edu.cn/anaconda/pkgs/main

ubuntu setup path of cuda

参考:https://blog.csdn.net/wanzhen4330/article/details/81699769

setup PATH: 打开主目录下的 .bashrc文件添加如下路径, .bashrc文件在/home/eric下。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-9.0/lib64
export PATH=$PATH:/usr/local/cuda-9.0/bin
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-9.0

终端运行:source ~/.bashrc

检查:nvcc –version。 驱动是通过nvidia-smi来检查。

安装cudnn

解压下载的文件,可以看到cuda文件夹,在当前目录打开终端,执行如下命令:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include/

sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/

sudo chmod a+r /usr/local/cuda/include/cudnn.h

sudo chmod a+r /usr/local/cuda/lib64/libcudnn*

macOS写img file to U disk

  • 打开磁盘工具卸载U disk,或者在终端里“diskutil unmount /Volumes/usb”;
  • 然后就可以使用dd命令来写img和ISO文件“sudo dd if=/Download/ubuntu-1604.iso of=/dev/disk2 bs=10m ”;
  • dd命令解释
    参数if- 输入文件名,就是iso的文件名
    参数of- 输出文件名
    参数bs- 同时设置读写块的大小,单位是bytes

在ubuntu里也是类似的操作方法。

Intel-MKL在home ubuntu18.04的尝试

今天在win10平台尝试使用MKL库+VC2015,运行LTE的phy,没有成功,在VC上的compile始终有问题,而且遇到c代码的数组【0:x】语法问题,可能是C++的扩展,需要email作者。

回到家里上网百度发现ubuntu的环境比较简洁,基于gcc编译,可以不采用VC或intel的icc编译。参考此文:<https://blog.csdn.net/qccz123456/article/details/85246439>

  • 首先把下载的“l_mkl_2019.5.281.tgz”执行“./install.sh”安装在我的~目录;
  • 然后执行“source ~/intel/bin/compilervars.sh intel64”设环境变量,这个是最关键的一步,然后安装gcc(7.4.0)编译器 apt install gcc;
  • 解压从intel下载的example文件“ipsxe2019_samples_lin_20190327.tgz”,tar -zxvf 放在/mkl-software目录。
  • 里面的mkl目录里有一个C例子“dgemm_example.c”,用它来验证MKL;
  • 编译“gcc -I ~/intel/mkl/include/ ./dgemm_example.c -lmkl_rt” 生成a.out,运行就可以出现下面内容:

This example computes real matrix C=alphaAB+beta*C using
Intel(R) MKL function dgemm, where A, B, and C are matrices and
alpha and beta are double precision scalars

Initializing data for matrix multiplication C=A*B for matrix
A(2000×200) and matrix B(200×1000)

Allocating memory for matrices aligned on 64-byte boundary for better
performance

Intializing matrix data

Computing matrix product using Intel(R) MKL dgemm function via CBLAS interface

Computations completed.

Top left corner of matrix A:
1 2 3 4 5 6
201 202 203 204 205 206
401 402 403 404 405 406
601 602 603 604 605 606
801 802 803 804 805 806
1001 1002 1003 1004 1005 1006

Top left corner of matrix B:
-1 -2 -3 -4 -5 -6
-1001 -1002 -1003 -1004 -1005 -1006
-2001 -2002 -2003 -2004 -2005 -2006
-3001 -3002 -3003 -3004 -3005 -3006
-4001 -4002 -4003 -4004 -4005 -4006
-5001 -5002 -5003 -5004 -5005 -5006

Top left corner of matrix C:
-2.6666E+09 -2.6666E+09 -2.6667E+09 -2.6667E+09 -2.6667E+09 -2.6667E+09
-6.6467E+09 -6.6467E+09 -6.6468E+09 -6.6468E+09 -6.6469E+09 -6.647E+09
-1.0627E+10 -1.0627E+10 -1.0627E+10 -1.0627E+10 -1.0627E+10 -1.0627E+10
-1.4607E+10 -1.4607E+10 -1.4607E+10 -1.4607E+10 -1.4607E+10 -1.4607E+10
-1.8587E+10 -1.8587E+10 -1.8587E+10 -1.8587E+10 -1.8588E+10 -1.8588E+10
-2.2567E+10 -2.2567E+10 -2.2567E+10 -2.2567E+10 -2.2568E+10 -2.2568E+10

Deallocating memory

Example completed.

这张图是我遇到的语法问题,代码是github shang de LTE_PHY_GP的intel目录里的代码,继续扫盲咯。。。。。

21case-tf “tensorflow&cuda版本对应关系”

1、查看cuda版本
cat /usr/local/cuda/version.txt
2、查看cudnn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2
3 、tensorflow版本与CUDA的版本对应关系
https://tensorflow.google.cn/install/source
4 、CUDA与NVIDIA驱动对应关系
https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#title-new-cuda-tools

Linux

CPU 版本Python 版本编译器编译工具
tensorflow-1.13.12.7、3.3-3.6GCC 4.8Bazel 0.19.2
tensorflow-1.12.02.7、3.3-3.6GCC 4.8Bazel 0.15.0
tensorflow-1.11.02.7、3.3-3.6GCC 4.8Bazel 0.15.0
tensorflow-1.10.02.7、3.3-3.6GCC 4.8Bazel 0.15.0
tensorflow-1.9.02.7、3.3-3.6GCC 4.8Bazel 0.11.0
tensorflow-1.8.02.7、3.3-3.6GCC 4.8Bazel 0.10.0
tensorflow-1.7.02.7、3.3-3.6GCC 4.8Bazel 0.10.0
tensorflow-1.6.02.7、3.3-3.6GCC 4.8Bazel 0.9.0
tensorflow-1.5.02.7、3.3-3.6GCC 4.8Bazel 0.8.0
tensorflow-1.4.02.7、3.3-3.6GCC 4.8Bazel 0.5.4
tensorflow-1.3.02.7、3.3-3.6GCC 4.8Bazel 0.4.5
tensorflow-1.2.02.7、3.3-3.6GCC 4.8Bazel 0.4.5
tensorflow-1.1.02.7、3.3-3.6GCC 4.8Bazel 0.4.2
tensorflow-1.0.02.7、3.3-3.6GCC 4.8Bazel 0.4.2
GPU 版本Python 版本编译器编译工具cuDNNCUDA
tensorflow_gpu-1.13.12.7、3.3-3.6GCC 4.8Bazel 0.19.27.410.0
tensorflow_gpu-1.12.02.7、3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.11.02.7、3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.10.02.7、3.3-3.6GCC 4.8Bazel 0.15.079
tensorflow_gpu-1.9.02.7、3.3-3.6GCC 4.8Bazel 0.11.079
tensorflow_gpu-1.8.02.7、3.3-3.6GCC 4.8Bazel 0.10.079
tensorflow_gpu-1.7.02.7、3.3-3.6GCC 4.8Bazel 0.9.079
tensorflow_gpu-1.6.02.7、3.3-3.6GCC 4.8Bazel 0.9.079
tensorflow_gpu-1.5.02.7、3.3-3.6GCC 4.8Bazel 0.8.079
tensorflow_gpu-1.4.02.7、3.3-3.6GCC 4.8Bazel 0.5.468
tensorflow_gpu-1.3.02.7、3.3-3.6GCC 4.8Bazel 0.4.568
tensorflow_gpu-1.2.02.7、3.3-3.6GCC 4.8Bazel 0.4.55.18
tensorflow_gpu-1.1.02.7、3.3-3.6GCC 4.8Bazel 0.4.25.18
tensorflow_gpu-1.0.02.7、3.3-3.6GCC 4.8Bazel 0.4.25.18

macOS

CPU

版本Python 版本编译器编译工具
tensorflow-1.13.12.7、3.3-3.6XCode 中的 ClangBazel 0.19.2
tensorflow-1.12.02.7、3.3-3.6XCode 中的 ClangBazel 0.15.0
tensorflow-1.11.02.7、3.3-3.6XCode 中的 ClangBazel 0.15.0
tensorflow-1.10.02.7、3.3-3.6XCode 中的 ClangBazel 0.15.0
tensorflow-1.9.02.7、3.3-3.6XCode 中的 ClangBazel 0.11.0
tensorflow-1.8.02.7、3.3-3.6XCode 中的 ClangBazel 0.10.1
tensorflow-1.7.02.7、3.3-3.6XCode 中的 ClangBazel 0.10.1
tensorflow-1.6.02.7、3.3-3.6XCode 中的 ClangBazel 0.8.1
tensorflow-1.5.02.7、3.3-3.6XCode 中的 ClangBazel 0.8.1
tensorflow-1.4.02.7、3.3-3.6XCode 中的 ClangBazel 0.5.4
tensorflow-1.3.02.7、3.3-3.6XCode 中的 ClangBazel 0.4.5
tensorflow-1.2.02.7、3.3-3.6XCode 中的 ClangBazel 0.4.5
tensorflow-1.1.02.7、3.3-3.6XCode 中的 ClangBazel 0.4.2
tensorflow-1.0.02.7、3.3-3.6XCode 中的 ClangBazel 0.4.2

GPU

版本Python 版本编译器编译工具cuDNNCUDA
tensorflow_gpu-1.1.02.7、3.3-3.6XCode 中的 ClangBazel 0.4.25.18
tensorflow_gpu-1.0.02.7、3.3-3.6XCode 中的 ClangBazel 0.4.25.18

21case-tf “scipy.misc.toimage() 报错”

学习《学习21个项目玩转深度学习》在chapter(1,2)中遇到scipy.misc.toimage() 报错,这是个numpys数组保存为图像的方法。

这个函数在scipy 1.2.0版本中已经删除,由于版本问题回报出没有toimage函数的问题,可以降低scipy版本号为1.1.0,然后再安装pip install pillow解决。