2020-03-16 18:06:47 Sebastien23 阅读数 222
  • WebGL 可视化3D绘图框架:Three.js 零基础上手实战

    相对于Flash,Flex,Silverlight等富客户端技术,WebGL之ThreeJS:通过OpenGL ES 2.0,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。这是未来的网游趋势,如果你想做可视化动画三维企业应用,又不想用复杂的C++程序,那么 Three.js 将会是你最好的选择。  本课程主要的功效就是让你学习完本教程后,能够写出在浏览器上流畅运行的3D程序,包括但不限于:大数据可视化,360度全景展示,3D游戏,完成这些事情,会比c++用更少的代码。而且更容易,更酷。 在本课程中,我们将由浅入深的讲解这些效果的实现,这能让你迅速提高开发技能,在职场中处于不败之地。课程共十三章,大大小小贯穿了近10个案例,只要你具备基础的HTML和JavaScript基础即可学习。

    1510 人正在学习 去看看 童金浩

利用远程云服务器跑深度学习模型主要有三个问题需要解决。

一是深度学习环境的搭建,二是已搭建环境的保存,三是远程数据的传输。

深度学习环境的搭建

以阿里云为例,在购买服务器创建实例时,可以在镜像市场选择购买已经配置好环境装好驱动的镜像。其优点是可以省去大量自己配置环境和安装显卡驱动的时间;而缺点在于不能自己选择深度学习框架和其它软件的版本,在后续自己安装其他软件或者函数库时可能发生兼容问题。

对于一台新购买的云服务器,深度学习环境的搭建无外乎安装Anaconda、TensorFlow或PyTorch,以及其他用于数据处理的库,例如numpy/pandas/matplotlib/sklearn/jupyter notebook,等等。另外还可根据需要安装keras,以及显卡驱动。

Tensorflow与Python/GCC/CUDA/cuDNN的版本对应关系

Tensorflow与Keras的版本对应关系

具体教程在此不一一赘述。

 

已搭建环境的保存

对于自己配置环境的云服务器,可以制作自定义镜像保存,以便在释放实例后再次创建其他实例时可以快速创建环境。在每次创建实例时选择按量付费,选择自定义镜像,做玩一次实验后对数据做好备份(保存快照或者远程传输到本地电脑),然后释放实例。如此可以将费用降到最低。

根据实例创建自定义镜像

根据自定义镜像创建实例

 

远程数据的传输

在运行深度学习模型时,为了防止长时间无操作而导致远程连接断开,可以让模型在后台运行。

source activate tensorflow_env # 激活深度学习环境
nohup jupyter notebook & # 后台运行并将数据保存到nohup.out文件中
nohup jupyter notebook --allow-root & # 如果是root用户

ps -aux | grep jupyter # 查看jupyter notebook进程号,假设是1842
kill -9 1842 # 停止后台运行

如果需要远程传输数据,可以安装putty/scp/pscp。本地Windows系统请安装pscp.exe,将其放在C:\Windows\System32\文件夹下。

# 将Windows本地的file.txt上传到远程Linux服务器
# 服务器文件路径为:用户名@服务器公网IP:文件路径
pscp E:\jupyter_notebook\workplace\file.txt root@服务器公网IP:/root/workplace

# 将远程服务器上的数据下载到本地Windows文件夹
pscp root@服务器公网IP:/root/workplace/data.npy E:\jupyter_notebook\workplace\data.npy

以上。

 

参考文章

https://blog.csdn.net/Lo_Bamboo/article/details/78601328

2017-11-20 22:13:27 Lauyeed 阅读数 4053
  • WebGL 可视化3D绘图框架:Three.js 零基础上手实战

    相对于Flash,Flex,Silverlight等富客户端技术,WebGL之ThreeJS:通过OpenGL ES 2.0,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。这是未来的网游趋势,如果你想做可视化动画三维企业应用,又不想用复杂的C++程序,那么 Three.js 将会是你最好的选择。  本课程主要的功效就是让你学习完本教程后,能够写出在浏览器上流畅运行的3D程序,包括但不限于:大数据可视化,360度全景展示,3D游戏,完成这些事情,会比c++用更少的代码。而且更容易,更酷。 在本课程中,我们将由浅入深的讲解这些效果的实现,这能让你迅速提高开发技能,在职场中处于不败之地。课程共十三章,大大小小贯穿了近10个案例,只要你具备基础的HTML和JavaScript基础即可学习。

    1510 人正在学习 去看看 童金浩

       最近,一直在自学深度学习。一边学习理论,一遍学习编程。在做CNN的时候,手头的笔记本电脑就吃不消了,运行的速度明显跟不上。本来想买一台带好点的显卡,可是调研了一下,带NVIDIA 1080的差不多要1万左右,更不用说更高的配置。

       偶然发现百度云里面有一款用于服务深度学习者的产品:百度深度学习。

       浅试了一下,个人感觉有以下几个优点,值得用来进行深度学习的学习:

       1. 上手容易。有帮助文档,可以帮助新手入门。虽然不是很丰富,但是上手很容易。

       2. 价格还算可以接受。因为我只是新手,计算的任务仅限于测试一些案例和调试一些参数。而该产品是使用按量计费的,最便宜的配置5.16元/时(Nvidia K40),非常符合我的需求,用完即可释放。

       3. 系统镜像已经预置了Tensorflow,keras等主流框架,非常方便。而且如果有缺少的包,也可自行安装。

       当然,也有不好的地方:

       1. 每次用完释放,无法保存镜像,每次都要重新下载数据。

       2. 用的是python2.7的版本。我笔记本上一直用的事Python3.5的版本。

       以下,简单描述一下使用过程(假设已经有百度云账号而且账号里面的余额不少于100元):

       1. 进入百度深度学习平台(https://cloud.baidu.com/product/bdl.html)

       2. 点击“立即使用”

       3. 点击“创建集群”

       4. 输入集群名称(随便取)、输入管理员密码、选择集群镜像、选择配置

       5. 点击“下一步”,点击“去支付”,随即你就拥有了一个带有Nvidia K40显卡的计算机。

       6. 进入管理控制台,点击集群名称,在基本信息里面可以看到公网IP,可以通过该IP访问该计算机。(该产品还自带了Jupyter notebook,不过目前没有太多的帮助文档,试用了一下,目前好像不太好用),以下是集群信息:

               

       7. 打开“Putty”(或者其他类似功能的工具),输入上述公网IP,输入用户名root,密码(创建集群时设置的密码),即可登陆集群。

       8. 集群中内置了3个domo,可以试一下,运行速度比笔记本快了很多。

      

       接下来就是上传自己的代码、数据、运行,并下载运行结果。集群是利用百度另一款产品,BOS实现数据的上传和下载。这里需要另外购买BOS,对于学习来说,BOS很便宜,是按照储存的量来计费的。以下是1GB的费用,只要0.74801元/月

     

        按照我的理解,集群需要通过BOS作为中转来实现和本地的数据交换。也就是说,本地计算机需要上传数据到BOS,然后集群从BOS上下载数据;算完之后,需要将集群上的数据上传到BOS,然后本地电脑再从BOS上下载,稍微有点麻烦,希望以后能够实现直接的上传和下载。不过,因为BOS和集群属于同一个内网,所以速度很快,可以达到20M/s。

       以下,介绍BOS的创建:

       1. 进入对象存储:https://cloud.baidu.com/product/bos.html

       2. 点击“立即使用”

       3. 点击“新建Bucket”,输入“Bucket名称”,(该名称是唯一的,可通过该名称储存,下载数据),区域和集群一致,存储类型选择“标准”,读写权限选择“公共读写”(我这里主要是用来学习,读数据的安全不是很重视,为了方便,选择“公共读写”)

       4. 点击“确定”,即可拥有一个类似硬盘的云盘

       5. 点击你创建的“Bucket名称”,即可进行文件的上传

       6. 这里假设你上传了文件cifar10_vgg16.zip文件,点击获取地址,即可获得该文件的地址file_address(指文件地址)

       7. 在Putty中输入wget file_address,即可从BOS中下载该文件到深度学习平台 

       以上介绍了文件的上传,即从本地上传到BOS,集群再从BOS中下载。反过来的过程,即从集群上传文件到BOS,需要使用BOS CLI,

       1. 从以下地址下载BOS CLI安装包https://cloud.baidu.com/doc/Downloadcenter/CLI.html

       2. 通过上述步骤将该安装包从本地上传到BOS,然后从BOS下载到集群

       3. 在Putty中解压安装包、安装

    $ unzip bce-cli-0.10.8.zip
    $ cd bce-cli-0.10.8
    $ python setup.py install
       4. 安装完之后,就可以把集群中的文件上传到BOS,这里假设你要上传mnist.py

    bce bos cp mnist.py bos:/mybucket/mnist.py
       (这里mybucket要换成你刚才创建的Bucket名称)

       这样,就可以实现代码、数据在集群和本地电脑上的上传和下载,就可以愉快地进行深度学习了。

       以下,通过vgg16神经网络分类cifar10数据集对比一下,我破烂的笔记本电脑(ThinkPad E430c)和带一个Nvidia K40集群的速度:


ThinkPad E430C 8.8examples/sec
Nvidia K40 460examples/sec
       通过以上表格,K40可以达到笔记本电脑的52倍!
       用完之后,要记得点击“释放”,这样集群就自动删除了,然后百度会根据的用的时间进行计费。

       不好的事,集群释放之后,你计算的结果,上传的数据就跟着消失了(BOS中的数据不会消失)。等下一次你要算的时候,就要从头开始,不过每次创建的时间也不会太长,估计在3分钟左右,也可以接受。




        


       

2018-01-24 21:25:24 christianashannon 阅读数 2664
  • WebGL 可视化3D绘图框架:Three.js 零基础上手实战

    相对于Flash,Flex,Silverlight等富客户端技术,WebGL之ThreeJS:通过OpenGL ES 2.0,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。这是未来的网游趋势,如果你想做可视化动画三维企业应用,又不想用复杂的C++程序,那么 Three.js 将会是你最好的选择。  本课程主要的功效就是让你学习完本教程后,能够写出在浏览器上流畅运行的3D程序,包括但不限于:大数据可视化,360度全景展示,3D游戏,完成这些事情,会比c++用更少的代码。而且更容易,更酷。 在本课程中,我们将由浅入深的讲解这些效果的实现,这能让你迅速提高开发技能,在职场中处于不败之地。课程共十三章,大大小小贯穿了近10个案例,只要你具备基础的HTML和JavaScript基础即可学习。

    1510 人正在学习 去看看 童金浩

参考 在AWS上配置深度学习主机

AWS 文档:aws文档

因为本地开发环境受限(没有高端显卡),于是深度学习运算只能使用各大厂的云主机;经过对比,发现亚马逊的aws在深度学习虚拟主机的搭建上性价比最高,于是决定使用aws。

根据推荐,要解决基础应用的要求,可以使用aws上的p2.xlarge主机实例,p2.xlarge 是一种非常适合深度学习的云服务器,它配备了 12G 显存的 Tesla K80 显卡,4核 CPU,60G 内存,以及 500M 的网速。

注册账户及填写工单

这一部分内容可参考原文,即需要一张visa/Master Card/运通/JCB 信用卡,值得注意的是注册过程中会扣1美元的预收费用,以验证信用卡的有效性,这1美元会在数天之后退回信用卡。
另外在注册过程中除了常见的邮件验证外,还会有电话验证,只需要在电话中输入验证码即可。

aws 实例设置

AMI 选择

AMI 即运行环境,可以自己创建,也可以选择已经搭建好的;由于要使用p2.xlarge主机,所以首先要注意哪些地区有该主机实例提供,目前美国弗吉尼亚和俄勒冈两个地区确认有该主机实例提供,地区选择位于登录界面右上角:
这里写图片描述
注册完成,成功登录后,进入aws控制台,可以看到:
这里写图片描述

点击服务列表的EC2,进入EC2控制台:

这里写图片描述

在控制台左侧的限制一栏里,可以看到该账户目前的权限,如果需要特定服务,点击“请求提高限制”,然后提交工单即可。

点击启动实例 按钮,开始选择AMI:

在这里选择合适项目的AMI,一般选择预装好了tensorflow和conda环境,并且安装了Nvida 驱动的AMI,可以在搜索框进行搜索,比如:

这里写图片描述
一般AMI都带有简短描述,选择合适自己项目的即可,如果有自建的AMI,也可选择自建的AMI,在这里,我选择了图中第二个AMI.

在选择实例类型里选择合适的实例,比如p2.xlarge:
这里写图片描述
在配置实例中可以选择竞价模型,建议选择竞价模型,可以手动设置最高价格,当价格大于当前可用价格,实例就会被创建;在子网选项里可以选择具体的实例子网;

这里写图片描述
这里写图片描述

然后依次下一步至配置安全组

这里写图片描述
这里写图片描述
在安全组配置中,可以设置流入接口和流出接口,这里最简单的就是设置成全部端口,但是可能存在安全问题(保存好密钥文件即可)
这里写图片描述
也可以这样按需求设置:
这里写图片描述
建议还是设置为所有流量;

进入审核页面,核对之前各部分信息无误后,点击启动,会要求使用密钥,可以选择新建(新建好后需下载保存)或已有密钥;
这里写图片描述
创建成功,有:
这里写图片描述
这里写图片描述

原参考文章是基于本地Linux系统的连接方法,在windos10以下版本的windos系统里,没有自带的ssh服务,因此只能选择putty连接,相关方法可以在aws文档中找到: 使用 PuTTY 从 Windows 连接到 Linux 实例 ,而对于windos10系统,系统已经集成了ssh工具,可以在设置中添加启用,启用后可以和Linux一样,直接使用ssh连接;
这里写图片描述
在保存有key(密钥)的文件夹中,用bash终端输入:

ssh -i "a.pem" ubuntu@xxxxx.compute-1.amazonaws.com

其中的 key 为你自己的key,xxxx 地址也要改为你自己买的服务器的 ip地址。如果它提示你是否要确定连接,点击确定:
如果不是在存有密钥的文件夹启用ssh,比如在桌面根目录,则改为:

ssh -i address/a.pem ubuntu@xxxxx.compute-1.amazonaws.com

address为本地存放key的相对地址;

连接后,在终端有:
这里写图片描述
这时已经连上了虚拟主机;
在bash命令行实验,显示python 版本:

python --version

这里写图片描述

启动jupyter notebook,开启一个支持远程连接的 jupyter notebook:

jupyter notebook --ip=0.0.0.0

会在终端中显示jupyter的浏览器地址:

 http://0.0.0.0:8888/?token=xxxxxxxx

然后在浏览器中输入 服务器 IP:8888 即可以进入jupyter notebook ,如果之前设置了jupyter 密码,则需要输入密码。比如此时虚拟主机分配的IP为52.152.152.10,则在浏览器中输入:

 http://52.152.152.10:8888/?token=xxxxxxxx

这样就可以进入jupyter了:
这里写图片描述

文档上传与下载

aws的虚拟主机采用scp进行文档上传与下载,对于windows系统,可以使用winscp这款软件:
这里写图片描述

下载安装后,打开,有:
这里写图片描述

即在主机名填入aws主机DNS域名,用户名为ubuntu(不同AMI用户名可能不同),再点击高级ssh验证,填入.ppk后缀的密钥,点击连接,即可连接;
需要注意:
aws生成的密钥文件为a.pem,需要使用putty将其转变为a.ppk形式的文件,转化过程可参阅aws文档: 使用 PuTTY 从 Windows 连接到 Linux 实例
首次用winscp链接远程主机会弹出安全性警告,点击“是/确定”即可;

连接成功:
这里写图片描述
左侧为本地文件夹,右侧为远程虚拟主机文件夹,拖拽文件即可完成上传下载操作。
至此,aws主机基本操作要求均已完全满足,可以使用它工作了。

PS: 创建私有的AMI

当使用竞价实例时,一旦停止实例,AMI中所有文件和记录都会被销毁,如果想要保存这个开发环境,下次再继续使用,可以将这个AMI环境保存下来:
这里写图片描述

点击“创建映像” 即可创建一个AMI映像,保存过程约3-5分钟左右,保存成功后,可以在左侧任务列表中的映像–AMI中找到,下一次开启远程虚拟主机时,可以直接选择此AMI。

这里写图片描述
aws提供了为期一年30G的免费存储空间,超过30G或者超过一年均会收费,因此,当项目完成时,请把不必要的AMI全部删除。

2019-03-20 22:04:48 weixin_39441762 阅读数 445
  • WebGL 可视化3D绘图框架:Three.js 零基础上手实战

    相对于Flash,Flex,Silverlight等富客户端技术,WebGL之ThreeJS:通过OpenGL ES 2.0,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。这是未来的网游趋势,如果你想做可视化动画三维企业应用,又不想用复杂的C++程序,那么 Three.js 将会是你最好的选择。  本课程主要的功效就是让你学习完本教程后,能够写出在浏览器上流畅运行的3D程序,包括但不限于:大数据可视化,360度全景展示,3D游戏,完成这些事情,会比c++用更少的代码。而且更容易,更酷。 在本课程中,我们将由浅入深的讲解这些效果的实现,这能让你迅速提高开发技能,在职场中处于不败之地。课程共十三章,大大小小贯穿了近10个案例,只要你具备基础的HTML和JavaScript基础即可学习。

    1510 人正在学习 去看看 童金浩

1 floydhub介绍

    floydhub是国外的一个非常简单的入门级深度学习云平台,提供了12G的k80显卡,足够入门和小项目运行。其好处是操作简单(笔者使用起来有点呛。。。)。实际上是将aws的GPU主机进行了封装集成,通过本地命令行直接调用;缺点在于价格较高,每GPU小时1.2美金。

2 floydhub注册及基本使用

   floydhub网址:https://www.floydhub.com/

   首先去官网上用邮箱注册一个floydhub账号,然后在本地cmd窗口下pip install -U floyd-cli;接着登录floyd login。跳转至登录界面:

    输入登录成功可能出现:

在cmd下重新输入floyd login即可。再次登录即可成功。

数据集的上传:1)在登录的界面里先建立一个上传数据集的文件;2)按照Overview下how to update a dataset的操作提示来上传数据文件;具体如图:

在图中位置创建数据集文件(创建public文件较为方便,但private比较麻烦)。在新创建的文件夹里会有如何上传文件的提示:

按照指示操作。在cd my_data_set这行命令时特别注意,仅上传数据就可以了。

本地运行demo:见博客floydhub 使用指南

创建项目:项目的创建即可在线创建也可本地创建,比较简单,可直接根据官网流程。

关于上传数据集加载的问题:笔者试了很多网上的方法,最后觉得比较好用的是在线创建workspace。

打开已创建的项目,在workspace下,创建workspace:

在创建workspace时候就选择start from scratch,这时候需要你购买了CPU或者GPU了,如果尚未购买,则无法进行下一步。

创建成功后,进入下面:

点击进入后,进去后在右侧部分会看到data,按照这一页里面的指示,加载dataset,之后创建jupyter即可运行代码啦(和本地jupyter使用方式一样哈),后面不截图了,国内网进入这个页面真的很慢~~。不推荐使用本地上传数据集或者运行了jupyter后在上传数据集,原因很简单,上传数据集时候也是烧GPU时间的~~~(笔者烧了一小时,还因为两次断网,没能将数据传上去~~~心痛)

友情提示:可以使用以下国内的russellcloud,目前笔者也正在试用,后面将教程附上,现在先给一个官方网址吧~:russellcloud

(价格上面较floyd优惠,GPU 是M80的~), 使用链接

------------------------------------------------------------------分割线-------------------------------------------------------------------------------------------

使用国内版的russellcloud的好处是充钱方便,但是调用GPU的速度比国外的floydhub慢多了,另外使用上面各种不方便,问题贼多。。。无力吐槽,希望他们早点完善一下吧。。。

2019-02-27 10:43:49 qq_35503402 阅读数 645
  • WebGL 可视化3D绘图框架:Three.js 零基础上手实战

    相对于Flash,Flex,Silverlight等富客户端技术,WebGL之ThreeJS:通过OpenGL ES 2.0,WebGL可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡来在浏览器里更流畅地展示3D场景和模型了,还能创建复杂的导航和数据视觉化。这是未来的网游趋势,如果你想做可视化动画三维企业应用,又不想用复杂的C++程序,那么 Three.js 将会是你最好的选择。  本课程主要的功效就是让你学习完本教程后,能够写出在浏览器上流畅运行的3D程序,包括但不限于:大数据可视化,360度全景展示,3D游戏,完成这些事情,会比c++用更少的代码。而且更容易,更酷。 在本课程中,我们将由浅入深的讲解这些效果的实现,这能让你迅速提高开发技能,在职场中处于不败之地。课程共十三章,大大小小贯穿了近10个案例,只要你具备基础的HTML和JavaScript基础即可学习。

    1510 人正在学习 去看看 童金浩

学生一枚,尝试一下用阿里云的GPU服务器跑深度学习。

基本过程参照这篇博客

https://blog.csdn.net/Lo_Bamboo/article/details/78601328

记录一下其中遇到的问题

1.创建完实例查看一下配置

查看显卡信息,驱动和cuda版本:nvidia-smi

2.下载Anaconda可以在本机下载后ftp传上去,虽然是清华的源,我下的时候还是卡了的,时间就是金钱啊。

3.创建自定义镜像是需要时间的,不要着急释放实例,确定镜像状态保存完后再释放,不然从头再来,别问我怎么知道的。。。

4.远程访问按照博客中所说的配置还是连不上,折腾半天发现网址应该是http://ip:端口,不是https,服务器端开启jupyter notebook时有提示网址的,没注意。

5.看你的服务器是否支持停机不收费,我的停机不释放的话是一小时0.01元,如果短期内还要使用就省的释放再创建了。

6.conda换源设置参考https://blog.csdn.net/dream_allday/article/details/80344511

 

没有更多推荐了,返回首页