Coding theano under remote ubuntu server from local Mac (在本地mac机器上,写、跑、调试、看-远程ubuntu上的theano代码)

本人是奇葩,最近鼓捣了一套在mac上coding远程ubuntu上的theano代码的东东,记之以期造福后人。

Overview: 下图是我的编程环境和网络环境

我期望能在本地mac机器上对远程的ubuntu theano server进行write、run、debug、view matplotlib图片。

mac设置(参考这里

考虑到在Mac本地调试一部分代码,我把mac也设置好了科学计算环境。

1.1 python

mac安装xcode后会自带很多东西,python就是其中一个。但mac提供的python版本不高,语法与标准python有区别。我使用brew安装了brewed python。

First install homebrew. Follow their instructions, then come back here.

# set up some taps and update brew 打开隐藏的科学库和python库

brew tap homebrew/science # a lot of cool formulae for scientific tools

brew tap homebrew/python # numpy, spicy

brew update && brew upgrade

# install a brewed python

brew install python

?brew安装的东西都在/usr/local/下,比如bin lib等。用which查看brew的python在/usr/local/bin下,mac自带的python 在/usr/bin下,/usr/local/bin should appear in front of /usr/bin。brew的package比如numpy会安装在local/python/site-package下。brew install python 会安装新的pip到local目录。以后brew的需要against brewed python lib的新软件比如macvim,会自动从$PATH中找第一个出现的python的lib。在ipython下,import os, print(os.path)可以看到$PYTHONPATH的路径,这个路径表示了使用哪个python。import numpy后,print numpy.___path__可以看到import的是哪个路径下的numpy。

# install numpy and scipy

brew install numpy 

brew install scipy

1.2  ipython

brew install qt pyqt 

# test the numpy & scipy install

brew test numpy

brew test scipy
#画图的

brew install matplotlib

# ipython and notebook support

brew install zmq

pip install ipython[zmq,qtconsole,notebook,test]

1.3 x11

A version of the X.Org X Window System that runs on OS X

x11是一个图形系统,ubuntu就是用x11来显示图形界面,pyhton的matplotlib也可以用x11,也可以用agg在不启动x11的时候使用plot,参考这里。mac有自己的一套图形界面,但也提供了x11支持(参考这里)。

2. 远程ubuntu12.04设置

2.1 theano、python、ipython的安装,(参考theano官方)

2.2 编译安装vim7.4+python版本,参考这里,?我几次编译都没能加入python支持,后来没有在编译时选装--enable-perlinterp \ --enable-luainterp \ --enable-gui=gtk2 --enable-cscope —prefix=/usr 这三个组件 才成功加入python支持,很奇怪,我猜是luain的原因。

2.3 youcompleteme安装,参考官方

3. mac与ubuntu互联互通

我在mac上通过ssh到ubuntu上用vim写python代码。调试时我希望能在mac上通过远程连接ubuntu的ipython的pdb

来调试。调试方法参考这里。问题是如何建立到远程python的链接呢?ipython的分离式设计给我提供了机会,参见下图。

ipython分成了kernel和frontend前端界面两个独立的部分。kerner可以运行在ubuntu上,而frontend可以运行在mac上。

3.1 方法1,在mac上用qtconsole连接远程kernel(请参考1 2

ubuntu端:

在ubuntu上启动ipython kernel,并绑定到ip,这样kernel就在192.168.2.6的41746 52697 52331 33016 58260这5个port上提供服务了。

server > ipython qtconsole —ip=192.168.2.6

这里也可以用ipython kernel来启动,但这时就木有x11或者agg支持了。

启动后在ipython中使用命令%connect_info来查看连接信息。

{

  "stdin_port": 41746, 

  "ip": "192.168.2.6", 

  "control_port": 52697, 

  "hb_port": 52331, 

  "signature_scheme": "hmac-sha256", 

  "key": "8c035c48-3fd1-4492-801d-aad6bda49293", 

  "shell_port": 33016, 

  "transport": "tcp", 

  "iopub_port": 58260

 }

启动后会自动生成一个如上内容的文件,这个文件可以在如下目录中找到

[email protected]:~$ ls .ipython/profile_default/security/kernel-10436.json  kernel-11114.json  kernel-7780.json

mac端:

copy连接文件到本地

scp -P 9997 [email protected]61.61.61.61:/home/congliu/profile_default/security/kernel-10436.json ./

启动frontend,连接到防火墙61.61.61.61后面的192.168.2.6。其实是用ssh的端口映射功能先把mac上qtconsole对127.0.0.1的41746 52697 52331 33016 58260这5个port的访问forwarding到远方的192.168.2.6的相应端口上,因为ubuntu在firewall后面,所以还用到了ssh tunnel把mac和61.61.61.61连起来。

[[email protected]~]$ipython qtconsole --ssh[email protected]61.61.61.61:9997  --ip=192.168.2.6 --existing ./kernel-11114.json

3.2 方法2 ,在mac上用notebook连接远程kernel(请参考这里)

3.3 方法3,使用ssh的x11 forwarding 功能(请参考这里

ssh还真是强大,可以把本该在ubuntu上通过x11显示图形,forward到mac上显示,当然前提是mac上要装好x11的服务(参考这里)。在ubuntu的命令行中输入ipython qtconsole就是在mac上打开一个qtconsole。此时,mac上的python和ipython根本没有运行,mac上的x11就是从ubuntu上的x11接收指令然后显示在本地而已。ubuntu上同时运行了ipython的kernel和frontend。

时间: 2024-11-05 01:38:31

Coding theano under remote ubuntu server from local Mac (在本地mac机器上,写、跑、调试、看-远程ubuntu上的theano代码)的相关文章

解决Ubuntu Server 12.04换了网卡MAC地址后 网络不可用的问题.

重装了系统,新建了一个ubuntu虚拟机,加载原来的镜像,结果启动后网络变得不正常了,提示信息 Waiting for network configuration...Waiting up to 60 more seconds for network configuration... 系统登入以后,执行ifconfig发现只有一个lo,少了eth0 网上找了找这方面的资料,找到了解决办法,办法很简单. [email protected]:~$ sudo rm /etc/udev/rules.d/

ubuntu上安装postgres以及在远程连接上的坑

Ubuntu上是有自带postgres安装版本的,因此我们只用自带的安装: 1.查看可安装版本命令:apt-cache show postgresql 2.安装命令:sudo apt-get install postgresql 3.查看安装是否成功:psql --version 实现远程连接: 1.先修改postgresql.conf 文件:sudo vi /etc/postgres/11/main/postgresql.conf       (注意:其中是根据实际情况写的,要是不确定:cd 

ubuntu server 14.04 LTS下搭建LAMP环境之最详细笔记之一U盘安装双系统

前言: 一直在WIN上使用PHP,不喜欢用WAMP,每次都是手动在windows配置环境,偶尔有一次装了小红帽玩了两天,感觉不是很习惯就换了回来,过了没几天见讨论LAMP环境,于是安装了ubuntu的desktop版本.安装好了环境使用了一下感觉也没有多大的意思,因为那一段时间没有怎么使用PHP,就这样又忽略掉了这一次学习的机会,直到上周日朋友最近在学习这方面的知识,说是要将一个老式电脑安装一个linux来玩玩.本文原创博客地址:http://www.cnblogs.com/unofficial

如何为ubuntu server 14.04 安装图形界面

buntu(乌班图)是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的"ubuntu"一词,意思是"人性"."我的存在是因为大家的存在",是非洲传统的一种价值观,类似华人社会的"仁爱"思想.Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本.Ubuntu的目标在于为一般用户提供一个最新的.同时又相当稳定的主要由自由软件构建而成的操作系统.Ubun

ubuntu server 14.04.4 无线网卡没有启用,找不到wlan0端口

Ubuntu Server默认的情况下是不会启用无线网卡的,想想实际服务器上怎么可能有无线网卡呢,呵呵.所以我们需要手动来启用无线网卡,难点就在这里了. 使用ifconfig命令,发现没有wlan口,但是使用 1. sudo lshw -numeric -class network2. sudo ifconfig -a 就可以找到wlan0口,其实ubuntu server默认不启用无线网卡,只需要改一下配置文件启用无线网卡就可以了. 3.设置无线网络.编辑/etc/network/interf

[转]ubuntu server上网配置

[转]ubuntu server上网配置 http://blog.sina.com.cn/s/blog_6c9d65a101011pyt.html 今天我的ubuntu server上不去网了,所以重新配置一下,正好整理一下: 一.查看网络配置状态 ifconfig -a 二.配置dhcp客户端 修改:/etc/network/interface文件 auto lo iface lo inet loop back auto eth0 iface eth0 inet dhcp //eth0是连接设

Step by step Install a Local Report Server and Remote Report Server Database

原创地址:http://www.cnblogs.com/jfzhu/p/4012097.html 转载请注明出处 前面的文章<Step by step SQL Server 2012的安装 >中,介绍过如何安装SQL Server 2012,其中的Database Engine Services和Reporting Services - Native安装在了同一台服务器上,但是为了提高性能,我们可以将Database Engine与Reporting Service分别安装在不同的服务器上.

Install laravel 5 on ubuntu server

Install laravel 5 on ubuntu server http://laravel.io/forum/06-10-2015-solved-install-laravel-5-on-ubuntu-server https://www.digitalocean.com/community/questions/how-to-install-laravel-5-on-ubuntu-nginx-server https://www.digitalocean.com/community/tu

UBUNTU SERVER 12.04搭建PHP环境

Ubuntu的Server和Desktop上都配过php的LAMP环境,步骤没什么区别,相关的教程网上也很多,这里把自己的配置过程记录下来,省得每次都google…供参考 整个环境用到Apache2.MySQL.php5和phpMyAdmin 1.安装Apache2 $ sudo apt-get install apache2 装完后在浏览器中访问 http://[server-ip-address]  如看到类似下图的页面,则apache2安装成功 Ubuntu下,apache的配置信息在/e