V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
irainy
V2EX  ›  Jupyter

Jupyter 上的 Lua 与 torch7

  •  
  •   irainy · 2016-01-02 20:47:54 +08:00 · 5165 次点击
    这是一个创建于 3008 天前的主题,其中的信息可能已经有所发展或是发生改变。

    >> 原文地址 <<


    Jupyter & IPython

    Jupyter是一个基于IPython Notebook的项目,我记得最开始 Jupyter 的目标还是致力于在 IPython Notebook 上通过扩展各种内核实现对不同编程语言的支持,但是现在再来看已经变成了“支持跨语言的交互式数据科学和科学计算”:

    support interactive data science and scientific computing across all programming languages.

    我一直还是把 Jupyter 当做一个好用的 Markdown 编辑器以及其他编程语言的虚拟运行环境来用,并没有关注过项目具体的发展。前段时间Github 支持渲染.ipynb文件(测试:test_jupyter.ipynb),以及后来 Google 开源的Deepdream项目,通过 IPython Notebook 可视化图片分类的深度学习过程中相邻神经网络层次之间的信息传递(我怀疑是不是这个大新闻促使了 Jupyter 向数据科学方向的转变?),可以看到 Jupyter 挑了一个热门或者正确的方向去发展。我这次打算用它来做LuaTorch7的学习笔记与交互展示,再去看官方文档,甚至已经开始脱离IPython走向独立。

    Lua & Torch & iTorch

    提到 Lua 很多人第一反应就是“写游戏的”(我最初接触它也是因为Cocos2d-Lua), Cocos2d-x 中的 Lua 只是 C/C++的 binding , Lua 的定位本身就是跨平台嵌入式脚本语言。 Lua 可能并不像其它语言那么热门,我看到有人认为“说 Python 是 Toy Language 是因为你没用过 Lua ”:P。国内社区似乎不怎么活跃,在用的人仍然在用,不用的人也有大把大把新的语言和框架涌现出来可供选择。在国内提到 Lua 不得不提的云风和他的天网-skynet;最近锤子赞助了OpenResty也就是Nginx_lua;之前上过纽约时报neuraltalk(自动生成场景图片的文字描述)从 Python+numpy 转到 Torch (neuraltalk2)。这些是进入我视线范围内的 Lua 的进展,也就是集中于后端服务程序和机器学习(数据科学)。

    Torch 之于 Lua ( LuaJIT )就像 Numpy 之于 Python ,不仅如此, Torch 还提供了神经网络模型和 GPU 的支持。为了更方便调试和展示运算过程, Facebook 开源了iTorch - IPython(Jupyter) Kernel for Torch ,其中可视化展现的部分由Bokeh.js提供,效果如下:

    iTorch ScreenShoot

    安装步骤

    System: Ubuntu 14.04.3 LTS (GNU/Linux 3.13.0-67-generic x86_64)

    1. install torch

    基本上按照官网的步骤就可以了,时间会比较长,尤其是在网速比较慢的时候:

    # in a terminal, run the commands
    curl -s https://raw.githubusercontent.com/torch/ezinstall/master/install-deps | bash
    git clone https://github.com/torch/distro.git /torch --recursive
    cd /torch; ./install.sh
    

    上面的步骤会先安装 LuaJIT 和 Lua 的包管理工具Luarocks

    2. install Jupyter

    按照Jupyter 文档,如果没装pip3先装起来:

    sudo apt-get install build-essential python3-dev
    # 还有下面这一步
    sudo apt-get install python3-pip
    

    然后安装 Jupiter (国内网络记得换国内 pip 镜像):

    pip3 install jupyter -i http://pypi.douban.com/simple
    

    3. install iTorch

    首先安装ZeroMQ依赖:

    sudo apt-get install libzmq3-dev
    

    然后下载安装 iTorch :

    git clone https://github.com/facebook/iTorch.git
    cd iTorch
    luarocks make
    

    4. Running a notebook server

    首先查看是否存在 Jupyter 配置文件,若没有则新建一份:

    ls ~/.jupyter
    # 如果没有 jupyter_notebook_config.py 则执行
    jupyter notebook --generate-config
    

    准备 Hased Password :

    # IPython
    from notebook.auth import passwd
    passwd('mypassword')
    # Output => 'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'
    

    更改 ~/.jupyter/jupyter_notebook_config.py

    # 去掉 c.NotebookApp.password 注释
    c.NotebookApp.password = u'sha1:67c9e60bb8b6:9ffede0825894254b2e042ea597d771089e11aed'
    c.NotebookApp.ip = '*'
    c.NotebookApp.open_browser = False
    

    5. Run itorch & Hello iTorch

    一切准备就绪,运行itorch notebook

    感兴趣的可以尝试一下:Hello iTorch,合理使用,切勿乱搞~Password('rainy.im')

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1175 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:28 · PVG 02:28 · LAX 11:28 · JFK 14:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.