美文网首页
3 - Ubuntu 基本工作环境 + 深度学习环境配置

3 - Ubuntu 基本工作环境 + 深度学习环境配置

作者: Miliimoulins | 来源:发表于2018-04-22 12:25 被阅读2315次

    本文记录Ubuntu下的远程工作环境配置,和Deep Learning各种包的安装。

    这是一个系列:
    1、Ubuntu 系统安装
    2、Ubuntu 16.04 + nvidia + cuda9.1
    3、Ubuntu 基本工作环境 + 深度学习环境配置
    4、Ubuntu 16.04 + SSR

    一、基本工作环境

    1、SSH Server

    ubuntu缺省没有安装SSH Server,使用以下命令安装:

    sudo apt-get install openssh-server  # 安装ssh
    ssh username@ip   # 在自己操作端连线本ubuntu的ssh
    

    第一次SSH连线时,会生成一个认证,存储在客户端(也就是用ssh连线其他电脑的那个,自己操作端)中的known_hosts,但是如果对象端发生重装系统等类似情况,认证信息也会变,操作端与对象端不一致,就回报错。因此,只要把电脑中的认证信息删掉,连线时重新生成,就好了。

    ssh-keygen -R 服务器端的IP或网址  # 删除认证信息
    

    接下来再连线一次,会出现Are you sure you want to continue connecting (yes/no)?输入yes就OK啦,同时新的认证信息已生成。

    2、screen

    用screen管理远程会话。

    sudo apt install screen  # 安装screen
    

    3、teamviewer

    teamviewer远程访问,图形化界面,主要优点是简单,无需使用VPN,快速安全的连接到世界各地的设备。

    # 安装teamviewer
    wget https://download.teamviewer.com/download/teamviewer_i386.deb
    sudo dpkg -i teamviewer*.deb
    sudo apt-get -f install
    
    teamviewer   # 启动
    
    teamviewer --info           # 查看teamview信息 
    teamviewer --passwd [PASSWD]     # 设置/重置密码
    
    teamviewer --setup console    # 设置启动方式为控制台启动  
    teamviewer --daemon restart   # 重启teamview服务   
    

    4、git

    sudo apt-get install git
    

    5、vim

    一个从vi发展来的文本编辑器,好用。和emacs并列成为类Unix系统用户最喜欢的编辑器。

    sudo apt-get install vim  
    

    原始没有自动加行号、自动缩进等功能,可以配置vim:

    sudo vim /etc/vim/vimrc
    

    '' 表示注释,加入下图中你的配置文件中没有的或者被注释掉的。
    [ 注意:mac的vim配置文件在用户目录下~/.vimrc ,如果没有,就自己创建一个:vim ~/.vimrc]

    如果配置没生效,升级一下vim:

    sudo apt-get install vim   
    

    1版本(ubuntu):

    " Uncomment the next line to make Vim more Vi-compatible
    " NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
    " options, so any other options should be set AFTER setting 'compatible'.
    "set compatible
    
    " Vim5 and later versions support syntax highlighting. Uncommenting the next
    " line enables syntax highlighting by default.
    if has("syntax")
      syntax on
    endif
    
    " If using a dark background within the editing area and syntax highlighting
    " turn on this option as well
    "set background=dark
    
    " Uncomment the following to have Vim jump to the last position when
    " reopening a file
    "if has("autocmd")
    "  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
    "endif
    " Uncomment the following to have Vim load indentation rules and plugins
    " according to the detected filetype.
    "if has("autocmd")
    "  filetype plugin indent on
    "endif
    
    " The following are commented out as they cause vim to behave a lot
    " differently from regular Vi. They are highly recommended though.
    "set showcmd        " Show (partial) command in status line.
    "set showmatch      " Show matching brackets.
    "set ignorecase     " Do case insensitive matching
    "set smartcase      " Do smart case matching
    "set incsearch      " Incremental search
    "set autowrite      " Automatically save before commands like :next and :make
    "set hidden     " Hide buffers when they are abandoned
    "set mouse=a        " Enable mouse usage (all modes)
    
    " Source a global configuration file if available
    if filereadable("/etc/vim/vimrc.local")
      source /etc/vim/vimrc.local
    endif
    

    2版本(mac):

    " 显示行号
    set number
    " 显示标尺
    set ruler
    " 历史纪录
    set history=1000
    " 输入的命令显示出来,看的清楚些
    set showcmd
    " 状态行显示的内容
    set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\ [TYPE=%Y]\ [POS=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")}
    " 启动显示状态行1,总是显示状态行2
    set laststatus=2
    " 语法高亮显示
    syntax on
    set fileencodings=utf-8,gb2312,gbk,cp936,latin-1
    set fileencoding=utf-8
    set termencoding=utf-8
    set fileformat=unix
    set encoding=utf-8
    " 配色方案
    colorscheme desert
    " 指定配色方案是256色
    set t_Co=256
    
    set wildmenu
    
    " 去掉有关vi一致性模式,避免以前版本的一些bug和局限,解决backspace不能使用的问题
    set nocompatible
    set backspace=indent,eol,start
    set backspace=2
    
    " 启用自动对齐功能,把上一行的对齐格式应用到下一行
    set autoindent
    
    " 依据上面的格式,智能的选择对齐方式,对于类似C语言编写很有用处
    set smartindent
    
    " vim禁用自动备份
    set nobackup
    set nowritebackup
    set noswapfile
    
    " 用空格代替tab
    set expandtab
    
    " 设置显示制表符的空格字符个数,改进tab缩进值,默认为8,现改为4
    set tabstop=4
    
    " 统一缩进为4,方便在开启了et后使用退格(backspace)键,每次退格将删除X个空格
    set softtabstop=4
    
    " 设定自动缩进为4个字符,程序中自动缩进所使用的空白长度
    set shiftwidth=4
    
    " 设置帮助文件为中文(需要安装vimcdoc文档)
    set helplang=cn
    
    " 显示匹配的括号
    set showmatch
    
    " 文件缩进及tab个数
    au FileType html,python,vim,javascript setl shiftwidth=4
    au FileType html,python,vim,javascript setl tabstop=4
    au FileType java,php setl shiftwidth=4
    au FileType java,php setl tabstop=4
    " 高亮搜索的字符串
    set hlsearch
    
    " 检测文件的类型
    filetype on
    filetype plugin on
    filetype indent on
    
    " C风格缩进
    set cindent
    set completeopt=longest,menu
    
    " 功能设置
    
    " 去掉输入错误提示声音
    set noeb
    " 自动保存
    set autowrite
    " 突出显示当前行 
    " set cursorline
    " 突出显示当前列
    " set cursorcolumn
    "设置光标样式为竖线vertical bar
    " Change cursor shape between insert and normal mode in iTerm2.app
    "if $TERM_PROGRAM =~ "iTerm"
    let &t_SI = "\<Esc>]50;CursorShape=1\x7" " Vertical bar in insert mode
    let &t_EI = "\<Esc>]50;CursorShape=0\x7" " Block in normal mode
    "endif
    " 共享剪贴板
    set clipboard+=unnamed
    " 文件被改动时自动载入
    set autoread
    " 顶部底部保持3行距离
    set scrolloff=3
    

    二、Deep Learning环境配置

    Anaconda3

    这里有篇关于Anaconda的使用总结。Anaconda已经包含了很多我们需要的科学计算包,可以省很多事,推荐直接装这个。

    • 官网下载Anaconda3-5.1.0-Linux-x86_64.sh。
    sh Anaconda3-5.1.0-Linux-x86_64.sh   # 切到该目录下,安装
    
    • 更改python默认版本为anaconda3:
    sudo gedit ~/.bashrc   # 编辑 .bashrc 文件
    

    在最后一行添加: export PATH=~/anaconda3/bin:$PATH ,保存。然后:

    source ~/.bashrc
    

    这里可以搜索用conda安装各种包的命令。

    Keras

    Keras是一个模型级的库,提供了快速构建深度学习网络的模块。Keras并不处理如张量乘法、卷积等底层操作。这些操作依赖于某种特定的、优化良好的张量操作库。Keras依赖于处理张量的库就称为“后端引擎”。Keras提供了三种后端引擎Theano/Tensorflow/CNTK,并将其函数统一封装,使得用户可以以同一个接口调用不同后端引擎的函数。

    • Theano是一个开源的符号主义张量操作框架,由蒙特利尔大学LISA/MILA实验室开发。
    • TensorFlow是一个符号主义的张量操作框架,由Google开发。
    • CNTK是一个由微软开发的商业级工具包。

    安装的时候注意版本问题,keras=2.0.6 对应 tensorflow-gpu=1.2.1 。如果以theano为后端时报错,则改为theano=0.9.0 (安装keras的同时会自动安装theano=1.0.1)。

    conda install -c conda-forge keras=2.0.6   
    

    更改keras后端(如果该目录下没有该文件,可以手动创建一个):

    sudo gedit ~/.keras/keras.json
    
    {
        "floatx": "float32",
        "epsilon": 1e-07,
        "backend": "tensorflow",
        "image_data_format": "channels_last"
    }
    

    将backend字段的值改写为你需要使用的后端:theano或tensorflow或者CNTK,即可完成后端的切换。

    Keras plot_model

    画出模型的整体架构

    conda install pydot==1.2.3
    brew install graphviz / sudo apt-get install graphviz
    

    Tensorflow,tensorboard

    conda install -c conda-forge tensorflow    # 不带GPU的话装这个
    conda install -c anaconda tensorflow-gpu=1.2.1   # 带GPU装这个就行
    conda install -c conda-forge tensorboard
    

    Pytorch

    # mac os
    conda install -c soumith pytorch
    conda install -c soumith torchvision
    
    # linux
    conda install pytorch torchvision -c pytorch
    
    conda create -n env python=3.5 mkl=2018 pytorch=0.3.0 -c pytorch -c intel   # 指定pytorch版本 安装在虚拟环境下
    
    nvcc -V  # 查看cuda版本
    conda install pytorch torchvision cuda91 -c pytorch
    

    SimpleITK

    conda install -c simpleitk simpleitk 
    

    pydicom

    conda install -c conda-forge pydicom=0.9.9
    

    Xgboost

    conda install -c conda-forge xgboost 
    

    Opencv

    conda install -c conda-forge opencv 
    

    如果出现错误:

    >>> import cv2
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    ImportError: /home/huangtiantian01/anaconda3/lib/python3.6/site-packages/../../libopencv_dnn.so.3.4: undefined symbol: _ZNK6google8protobuf7Message25InitializationErrorStringB5cxx11Ev
    

    则:

    pip install opencv-python
    

    flask,flask-restful

    conda install -c conda-forge flask         # anaconda中已有
    conda install -c conda-forge flask-restful
    

    simplejson

    conda install -c conda-forge simplejson
    

    virtualenv

    conda install -c conda-forge virtualenv
    

    安装Python2.7版本的虚拟环境 env-py2:virtualenv env-py2
    安装Python3.5版本的虚拟环境 env-py3:virtualenv -p /usr/bin/python3.5 env-py3

    =======================下面如果不需要就别安装=======================

    SharedArray

    如果安装SharedArray不成功,显示

     /tmp/pip-build-E4wZkg/SharedArray/src/shared_array_attach.c:24:31: fatal error: numpy/arrayobject.h: No such file or directory
        compilation terminated.
        error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    

    则:

    sudo apt-get install python-numpy
    

    然后再安装就成功了。

    nolearn

    conda install -c toli nolearn 
    

    lasagne 弃坑!!!

    conda install -c toli lasagne 
    
    Traceback (most recent call last):
      File "train_nn.py", line 7, in <module>
        from nn import create_net
      File "/home/meditool/Documents/kaggle_dr_sveitser_no2/nn.py", line 4, in <module>
        import lasagne
      File "/home/meditool/anaconda3/lib/python3.5/site-packages/lasagne/__init__.py", line 19, in <module>
        from . import layers
      File "/home/meditool/anaconda3/lib/python3.5/site-packages/lasagne/layers/__init__.py", line 7, in <module>
        from .pool import *
      File "/home/meditool/anaconda3/lib/python3.5/site-packages/lasagne/layers/pool.py", line 6, in <module>
        from theano.tensor.signal import downsample
    ImportError: cannot import name 'downsample'
    

    Solution: 换成 import theano.tensor.signal.pool as downsample

    lasagne现在可获得的版本里,lasagne.objectives没有了Objective类,老早的版本已经找不到了,简直神坑!!!!!!!花了我半天时间, 发现 it's an unsolved problem。:)

    ===========================================================

    ImageMagick

    sudo apt-get update
    sudo apt-get install imagemagick
    

    parallel

    sudo apt-get install parallel
    

    GraphLab Create

    conda install -c dato-internals graphlab-create
    

    如果出错,参照官网,注册邮箱获得Product key。
    After pip 10 upgrade on pyenv "ImportError: cannot import name 'main'" #5240

    相关文章

      网友评论

          本文标题:3 - Ubuntu 基本工作环境 + 深度学习环境配置

          本文链接:https://www.haomeiwen.com/subject/pesflftx.html