美文网首页
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