本文记录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
网友评论