当前位置:首页 » 编程语言 » pythonazure

pythonazure

发布时间: 2022-12-27 00:28:13

A. 如何在云端服务器运行Jupyter Notebook

垫场演出:如何在ipython Notebook里运行R?(一行命令搞定版)
从去年开始,我抛弃了mathmatica,eviews,matlab之类的商业统计和数学软件,开始拥抱开源数据分析。这一方面是因为工作需要,想掌握一门更通用的编程语言,一方面也因为和所有中国的分析师一样,我用的是盗版的eviews和matlab,因此是完全没有客户支持。为了解决日常问题而花的研究文档和stackoverflow上的工作量,并不比用开源软件更少。而开源的好处是,实在查不到解决方案了,至少我还可以去看源代码,虽然看不看得懂可以再讨论,但 I‘d like to have the option。
大家都知道开源数据分析的两大利器,IPython 和 R。一般来说,IPython从Python发展而来,更倾向于科学计算。互联网数据分析更喜欢用。而R是统计学家发展出的一门语言,在金融、经济和社会科学领域应用更广泛。我更喜欢R的数据解构和与数学相关的syntax,在读完R的入门教程之后,很多时候我都不需要去查文档,猜都能猜到我想用的一些函数名称(lag(),diff())。另一方面,我也喜欢Ipython Notebook的交互方式,在富文本的展示效果和使用体验上,R markdown简直就是个不成熟的玩具,更何况Python还是个更成熟的通用编程语言,除了数据以外,几乎可以和这个世界的一切协议进行通信。之前,我一直是在用Rstudio调试R代码,用Anaconda的IPython Notebook或者spyder调试Python代码,有必要的话再通过Rpy2之类的接口综合起来。
但是8月底,收到了Anaconda的一封邮件:Ipython Notebook升级到4.0,改名Jupyter。而且,可以开始用conda管理R的程序包了,Anaconda正式支持R!下载安装Anaconda,然后一条命令:
conda create -n my-r-env -c r r-essentials

就可以创建R的虚拟环境,安装由Anaconda维护的R发行版本r-essentials 然后在ipython Notebook里面用R的语法调试、运行R程序!Windows,Linux,OS X全都可用!how cool is that!再见啦,rpy2。
正场:如何在云端运行Jupyter Notebook?
成功在ipython里面创建了R的环境之后,我又想尝试之前的一个想法了,部署一个云端的计算服务器。传统行业还没有进入大数据时代,数据量相对较小,绝大部分运算任务都是在我的笔记本上解决。但因为开始用Python了,也开始自己写爬虫、甚至想做自己的云端数据可视化方案(否则怎么向非码农的领导展示花了这么多时间的研究成果?代码?)。当然,rstudio拥有rstudio server版本,也可以在云端运行。但我觉得ipython的界面是一个更漂亮的前端页面,支持markdown功能,可以写入很多注释文档,以便非码农使用。另一方面,ipython支持bokeh,一个html5的数据可视化方案。
google了一阵之后发现,目前网上所有在云端安装ipython notebook的方案都是基于ipython 2.x的。而在ipython3.0之后,原有的配置方法已经不可用,只好自己去研究文档。经过几个小时的试错,终于在云端开始跑起了。
以下是主要步骤,前提是,拥有一个虚拟机,并且有ssh账号登陆。没有的同学可以自己在阿里云之类的服务商处申请,个人推荐”1元免费试用“1个月的微软云。一般这些主机服务商都会提供一个基本的教程,因此从设置主机直到创建账号,ssh登陆都应该不是什么问题。
接下来,下载miniconda,一个科学计算环境管理软件,Anaconda的最小发型版本(假设运行的是64位Linux 虚拟机):
wget "https://repo.continuum.io/miniconda/Miniconda-latest-Linux-x86_64.sh"

然后安装:
sudo bash Miniconda-latest-Linux-x86_64.sh

然后通过miniconda的环境管理软件,conda安装必要被ipython和ipython-notebook.
conda install ipython
conda install ipython-notebook

接下来,我们需要创建一个名为nbserver的配置。
ipython profile create nbserver

这将创建一个文件夹,其中包含一些原始的配置文件。我们跳转到这个文件夹进行一些配置
cd ~/.ipython/profile_nbserver/

由于ipython Notebook要求https连接,因此我们需要创建一个ssl证书。
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

命令执行后根据提示输入信息就好,当然,这个证书并未获得认证,因此用chrome之类的浏览器访问的时候会得到一些错误信息,这个问题我们一会儿说。接下来我们创建一个密文的密码。
python -c "import IPython;print IPython.lib.passwd()"

运行之后进入一个创建密码hash值的小程序,根据提示输入你想用的安全口令:
Enter password:
Verify password:
sha1:b86e933199ad:a02e9592e59723da722.. #这是我的密码的hash值,后段被删除,你的密码得到的结果应该不同

然后开始编辑配置文件,通过vi编辑文件的命令如下:
vi ipython_notebook_config.py

这个文件可能不存在,那么通过vi创建一个,配置文件的内容如下:
c = get_config()

# 所有matplotlib的图像都通过iline的方式显示
c.IPKernelApp.pylab = 'inline'
# 这一行指向我们刚刚创建的ssl证书
c.NotebookApp.certfile = u'/home/azureuser/.ipython/profile_nbserver/mycert.pem'
# 给出刚刚创建的密码的哈希值
c.NotebookApp.password = u'sha1:b86e933199ad:a02e9592e5 etc... '
c.NotebookApp.ip = '*'
# 给出运行的端口,ipython默认为8888
c.NotebookApp.port = 8888
# 禁止在运行ipython的同时弹出浏览器
c.NotebookApp.open_browser = False

编辑完成以后按两次shift+z 保存退出
配置完毕以后就可以运行ipython Notebook的服务端了:
jupyter notebook --config=/home/azureuser/.ipython/profile_nbserver/ipython_notebook_config.py #给出你刚才创建的nbserver路径,这里为微软azure云默认的情况

当然,微软云还需要配置一下服务器端的endpoint,将云主机的https端口(443)指向内部的8888端口。
在你的浏览器地址栏输入:
https://www.youappdomain.com

这时候会遇到https提示根证书并非认证证书,不用管这个提示继续进入,voila,你的ipython Notebook server架好啦!

输入你刚才创建的密码,就可以开始像在本地一样使用了。
附注:这是我的第一篇技术博客,之前遇到各种技术问题就在网上搜,stackoverflow、quora和知乎的热心人们分享的技术经验都给了我很大的帮助。因为几乎从来没遇到过别人没有解决过的问题,一直没想到要写技术分享的博客,直到这次配置Jupyter Notebook。这好像是中英文世界里第一个在云端配置Jupyter Notebook 4.0的教程,同时也是第一个在中文世界里传播r-essential这个好消息的博客文章。 let me know what you think.

B. 为什么说Python是大数据全栈式开发语言

就像只要会javaScript就可以写出完整的Web应用,只要会Python,就可以实现一个完整的大数据处理平台。x0dx0ax0dx0a云基础设施x0dx0ax0dx0a这年头,不支持云平台,不支持海量数据,不支持动态伸缩,根本不敢说自己是做大数据的,顶多也就敢跟人说是做商业智能(BI)。x0dx0ax0dx0a云平台分为私有云和公有云。私有云平台如日中天的 OpenStackx0dx0a x0dx0a,就是Python写的。曾经的追赶者CloudStack,在刚推出时大肆强调自己是Java写的,比Python有优势。结果,搬石砸脚,2015年x0dx0a初,CloudStack的发起人Citrix宣布加入OpenStack基金会,CloudStack眼看着就要寿终正寝。x0dx0ax0dx0a如果嫌麻烦不想自己搭建私有云,用公有云,不论是AWS,GCE,Azure,还是阿里云,青云,在都提供了Python SDK,其中GCE只提供Python和JavaScript的SDK,而青云只提供Python SDK。可见各家云平台对Python的重视。x0dx0ax0dx0a提到基础设施搭建,不得不提Hadoop,在今天,Hadoop因为其MapRece数据处理速度不够快,已经不再作为大数据处理的首选,但x0dx0a是HDFS和Yarn——Hadoop的两个组件——倒是越来越受欢迎。Hadoop的开发语言是Java,没有官方提供Python支持,不过有很多第x0dx0a三方库封装了Hadoop的API接口(pydoop,hadoopy等等)。x0dx0ax0dx0aHadoop MapRece的替代者,是号称快上100倍的 Spark ,其开发语言是Scala,但是提供了Scala,Java,Python的开发接口,想要讨好那么多用Python开发的数据科学家,不支持Python,真是说不过去。HDFS的替代品,比如GlusterFS, Ceph 等,都是直接提供Python支持。Yarn的替代者, Mesos 是C++实现,除C++外,提供了Java和Python的支持包。有个中文名字,叫做 开发自运维 。互联网时代,只有能够快速试验新想法,并在第一时间,安全、可靠的交付业务价值,才能保持竞争力。DevOps推崇的自动化构建/测试/部署,以及系统度量等技术实践,是互联网时代必不可少的。x0dx0ax0dx0a自动化构建是因应用而易的,如果是Python应用,因为有setuptools, pip, virtualenv, tox, x0dx0aflake8等工具的存在,自动化构建非常简单。而且,因为几乎所有Linux系统都内置Python解释器,所以用Python做自动化,不需要系统预x0dx0a安装什么软件。x0dx0ax0dx0a自动化测试方面,基于Python的 Robot Framework 企业级应用最喜欢的自动化测试框架,而且和语言无关。Cucumber也有很多支持者,Python对应的Lettuce可以做到完全一样的事情。 Locust 在自动化性能测试方面也开始受到越来越多的关注。x0dx0ax0dx0a自动化配置管理工具,老牌的如Chef和Puppet,是Ruby开发,目前仍保持着强劲的势头。不过,新生代 Ansible 和 SaltStack ——均为Python开发——因为较前两者设计更为轻量化,受到越来越多开发这的欢迎,已经开始给前辈们制造了不少的压力。x0dx0ax0dx0a在系统监控与度量方面,传统的Nagios逐渐没落,新贵如 Sensu 大受好评,云服务形式的New Relic已经成为创业公司的标配,这些都不是直接通过Python实现的,不过Python要接入这些工具,并不困难。x0dx0ax0dx0a除了上述这些工具,基于Python,提供完整DevOps功能的PaaS平台,如 Cloudify 和 Deis ,虽未成气候,但已经得到大量关注。x0dx0ax0dx0a网络爬虫x0dx0ax0dx0a大数据的数据从哪里来?除了部分企业有能力自己产生大量的数据,大部分时候,是需要靠爬虫来抓取互联网数据来做分析。x0dx0ax0dx0a网络爬虫是Python的传统强势领域,最流行的爬虫框架Scrapy,HTTP工具包urlib2,HTML解析工具beautifulsoup,XML解析器lxml,等等,都是能够独当一面的类库。x0dx0ax0dx0a不过,网络爬虫并不仅仅是打开网页,解析HTML这么简单。高效的爬虫要能够支持大量灵活的并发操作,常常要能够同时几千甚至上万个网页同时抓取,传统的x0dx0a线程池方式资源浪费比较大,线程数上千之后系统资源基本上就全浪费在线程调度上了。Python由于能够很好的支持协程( Coroutine )操作,基于此发展起来很多并发库,如Gevent,Eventlet,还有Celery之类的分布式任务框架。被认为是比AMQP更高效的ZeroMQ也是最早就提供了Python版本。有了对高并发的支持,网络爬虫才真正可以达到大数据规模。x0dx0ax0dx0a抓取下来的数据,需要做分词处理,Python在这方面也不逊色,着名的自然语言处理程序包NLTK,还有专门做中文分词的Jieba,都是做分词的利器。x0dx0ax0dx0a数据处理x0dx0ax0dx0a万事俱备,只欠东风。这东风,就是数据处理算法。从统计理论,到数据挖掘,机器学习,再到最近几年提出来的深度学习理论,数据科学正处于百花齐放的时代。数据科学家们都用什么编程?x0dx0ax0dx0a如果是在理论研究领域,R语言也许是最受数据科学家欢迎的,但是R语言的问题也很明显,因为是统计学家们创建了R语言,所以其语法略显怪异。而且x0dx0aR语言要想实现大规模分布式系统,还需要很长一段时间的工程之路要走。所以很多公司使用R语言做原型试验,算法确定之后,再翻译成工程语言。x0dx0ax0dx0aPython也是数据科学家最喜欢的语言之一。和R语言不同,Python本身就是一门工程性语言,数据科学家用Python实现的算法,可以直x0dx0a接用在产品中,这对于大数据初创公司节省成本是非常有帮助的。正式因为数据科学家对Python和R的热爱,Spark为了讨好数据科学家,对这两种语言x0dx0a提供了非常好的支持。x0dx0ax0dx0aPython的数据处理相关类库非常多。高性能的科学计算类库NumPy和SciPy,给其他高级算法打了非常好的基础,matploglib让x0dx0aPython画图变得像Matlab一样简单。Scikit-learn和Milk实现了很多机器学习算法,基于这两个库实现的 Pylearn2 ,是深度学习领域的重要成员。 Theano 利用GPU加速,实现了高性能数学符号计算和多维矩阵计算。当然,还有 Pandas ,一个在工程领域已经广泛使用的大数据处理类库,其DataFrame的设计借鉴自R语言,后来又启发了Spark项目实现了类似机制。x0dx0ax0dx0a对了,还有 iPython ,这个工具如此有用,以至于我差点把他当成标准库而忘了介绍。iPython是一个交互式Python运行环境,能够实时看到每一段Python代码的结果。默认情况下,iPython运行在命令行,可以执行 ipython notebook 在网页中运行。用matplotlib绘制的图可以直接嵌入式的显示在iPython Notebook中。x0dx0a x0dx0aiPython Notebook的笔记本文件可以共享给其他人,这样其他人就可以在自己的环境中重现你的工作成果;如果对方没有运行环境,还可以直接转换成HTML或者PDF。x0dx0ax0dx0a为什么是Pythonx0dx0ax0dx0a正是因为应用开发工程师、运维工程师、数据科学家都喜欢Python,才使得Python成为大数据系统的全栈式开发语言。x0dx0ax0dx0a对于开发工程师而言,Python的优雅和简洁无疑是最大的吸引力,在Python交互式环境中,执行 import thisx0dx0a x0dx0a,读一读Python之禅,你就明白Python为什么如此吸引人。Python社区一直非常有活力,和NodeJS社区软件包爆炸式增长不x0dx0a同,Python的软件包增长速度一直比较稳定,同时软件包的质量也相对较高。有很多人诟病Python对于空格的要求过于苛刻,但正是因为这个要求,才x0dx0a使得Python在做大型项目时比其他语言有优势。OpenStack项目总共超过200万行代码,证明了这一点。x0dx0ax0dx0a对于运维工程师而言,Python的最大优势在于,几乎所有Linux发行版都内置了Python解释器。Shell虽然功能强大,但毕竟语法不够优雅,写比较复杂的任务会很痛苦。用Python替代Shell,做一些复杂的任务,对运维人员来说,是一次解放。x0dx0ax0dx0a对于数据科学家而言,Python简单又不失强大。和C/C++相比,不用做很多的底层工作,可以快速进行模型验证;和Java相比,Python语法简x0dx0a洁,表达能力强,同样的工作只需要1/3代码;和Matlab,Octave相比,Python的工程成熟度更高。不止一个编程大牛表达过,Pythonx0dx0a是最适合作为大学计算机科学编程课程使用的语言——MIT的计算机入门课程就是使用的Python——因为Python能够让人学到编程最重要的东西——x0dx0a如何解决问题。

C. 13个最常用的Python深度学习库介绍

13个最常用的Python深度学习库介绍
如果你对深度学习和卷积神经网络感兴趣,但是并不知道从哪里开始,也不知道使用哪种库,那么这里就为你提供了许多帮助。
在这篇文章里,我详细解读了9个我最喜欢的Python深度学习库。
这个名单并不详尽,它只是我在计算机视觉的职业生涯中使用并在某个时间段发现特别有用的一个库的列表。
这其中的一些库我比别人用的多很多,尤其是Keras、mxnet和sklearn-theano。
其他的一些我是间接的使用,比如Theano和TensorFlow(库包括Keras、deepy和Blocks等)。
另外的我只是在一些特别的任务中用过(比如nolearn和他们的Deep Belief Network implementation)。
这篇文章的目的是向你介绍这些库。我建议你认真了解这里的每一个库,然后在某个具体工作情境中你就可以确定一个最适用的库。
我想再次重申,这份名单并不详尽。此外,由于我是计算机视觉研究人员并长期活跃在这个领域,对卷积神经网络(细胞神经网络)方面的库会关注更多。
我把这个深度学习库的列表分为三个部分。
第一部分是比较流行的库,你可能已经很熟悉了。对于这些库,我提供了一个通俗的、高层次的概述。然后,针对每个库我详细解说了我的喜欢之处和不喜欢之处,并列举了一些适当的应用案例。
第二部分进入到我个人最喜欢的深度学习库,也是我日常工作中使用最多的,包括:Keras、mxnet和sklearn-theano等。
最后,我对第一部分中不经常使用的库做了一个“福利”板块,你或许还会从中发现有用的或者是在第二板块中我还没有尝试过但看起来很有趣的库。
接下来就让我们继续探索。
针对初学者:
Caffe
提到“深度学习库”就不可能不说到Caffe。事实上,自从你打开这个页面学习深度学习库,我就敢打保票你肯定听说Caffe。
那么,究竟Caffe是什么呢?
Caffe是由Berkeley Vision and Learning Center(BVLC)建立的深度学习框架。它是模块化的,速度极快。而且被应用于学术界和产业界的start-of-the-art应用程序中。
事实上,如果你去翻阅最新的深度学习出版物(也提供源代码),你就很可能会在它们相关的GitHub库中找到Caffe模型。
虽然Caffe本身并不是一个Python库,但它提供绑定到Python上的编程语言。我们通常在新领域开拓网络的时候使用这些绑定。
我把Caffe放在这个列表的原因是它几乎被应用在各个方面。你可以在一个空白文档里定义你的模型架构和解决方案,建立一个JSON文件类型的.prototxt配置文件。Caffe二进制文件提取这些.prototxt文件并培训你的网络。Caffe完成培训之后,你可以把你的网络和经过分类的新图像通过Caffe二进制文件,更好的就直接通过Python或MATLAB的API。
虽然我很喜欢Caffe的性能(它每天可以在K40 GPU上处理60万张图片),但相比之下我更喜欢Keras和mxnet。
主要的原因是,在.prototxt文件内部构建架构可能会变得相当乏味和无聊。更重要的是, Caffe不能用编程方式调整超参数!由于这两个原因,在基于Python的API中我倾向于对允许我实现终端到终端联播网的库倾斜(包括交叉验证和调整超参数)。
Theano
在最开始我想说Theano是美丽的。如果没有Theano,我们根本不会达到现有的深度学习库的数量(特别是在Python)。同样的,如果没有numpy,我们就不会有SciPy、scikit-learn和 scikit-image,,同样可以说是关于Theano和深度学习更高级别的抽象。
非常核心的是,Theano是一个Python库,用来定义、优化和评估涉及多维数组的数学表达式。 Theano通过与numpy的紧密集成,透明地使用GPU来完成这些工作。
虽然可以利用Theano建立深度学习网络,但我倾向于认为Theano是神经网络的基石,同样的numpy是作为科学计算的基石。事实上,大多数我在文章中提到的库都是围绕着Theano,使自己变得更加便利。
不要误会我的意思,我爱Theano,我只是不喜欢用Theano编写代码。
在Theano建设卷积神经网络就像只用本机Python中的numpy写一个定制的支持向量机(SVM),当然这个对比并不是很完美。
你可以做到吗?
当然可以。
它值得花费您的时间和精力吗?
嗯,也许吧。这取决于你是否想摆脱低级别或你的应用是否需要。
就个人而言,我宁愿使用像Keras这样的库,它把Theano包装成更有人性化的API,同样的方式,scikit-learn使机器学习算法工作变得更加容易。
TensorFlow
与Theano类似,TensorFlow是使用数据流图进行数值计算的开源库(这是所有神经网络固有的特征)。最初由谷歌的机器智能研究机构内的Google Brain Team研究人员开发,此后库一直开源,并提供给公众。
相比于Theano ,TensorFlow的主要优点是分布式计算,特别是在多GPU的环境中(虽然这是Theano正在攻克的项目)。
除了用TensorFlow而不是Theano替换Keras后端,对于TensorFlow库我并没有太多的经验。然而在接下来的几个月里,我希望这有所改变。
Lasagne
Lasagne是Theano中用于构建和训练网络的轻量级库。这里的关键词是轻量级的,也就意味着它不是一个像Keras一样围绕着Theano的重包装的库。虽然这会导致你的代码更加繁琐,但它会把你从各种限制中解脱出来,同时还可以让您根据Theano进行模块化的构建。
简而言之:Lasagne的功能是Theano的低级编程和Keras的高级抽象之间的一个折中。
我最喜欢的:
Keras
如果我必须选出一个最喜欢的深度学习Python库,我将很难在Keras和mxnet中做出抉择——但最后,我想我会选Keras。
说真的,Keras的好处我说都说不完。
Keras是一个最低限度的、模块化的神经网络库,可以使用Theano或TensorFlow作为后端。Keras最主要的用户体验是,从构思到产生结果将会是一个非常迅速的过程。
在Keras中架构网络设计是十分轻松自然的。它包括一些state-of-the-art中针对优化(Adam,RMSProp)、标准化(BatchNorm)和激活层(PReLU,ELU,LeakyReLU)最新的算法。
Keras也非常注重卷积神经网络,这也是我十分需要的。无论它是有意还是无意的,我觉得从计算机视觉的角度来看这是非常有价值的。
更重要的是,你既可以轻松地构建基于序列的网络(其中输入线性流经网络)又可以创建基于图形的网络(输入可以“跳过”某些层直接和后面对接)。这使得创建像GoogLeNet和SqueezeNet这样复杂的网络结构变得容易得多。
我认为Keras唯一的问题是它不支持多GPU环境中并行地训练网络。这可能会也可能不会成为你的大忌。
如果我想尽快地训练网络,那么我可能会使用mxnet。但是如果我需要调整超参数,我就会用Keras设置四个独立的实验(分别在我的Titan X GPUs上运行)并评估结果。
mxnet
我第二喜欢的深度学习Python库无疑就是mxnet(重点也是训练图像分类网络)。虽然在mxnet中站立一个网络可能需要较多的代码,但它会提供给你惊人数量的语言绑定(C ++、Python、R、JavaScript等)。
Mxnet库真正出色的是分布式计算,它支持在多个CPU / GPU机训练你的网络,甚至可以在AWS、Azure以及YARN集群。
它确实需要更多的代码来设立一个实验并在mxnet上运行(与Keras相比),但如果你需要跨多个GPU或系统分配训练,我推荐mxnet。
sklearn-theano
有时候你并不需要终端到终端的培养一个卷积神经网络。相反,你需要把CNN看作一个特征提取器。当你没有足够的数据来从头培养一个完整的CNN时它就会变得特别有用。仅仅需要把你的输入图像放入流行的预先训练架构,如OverFeat、AlexNet、VGGNet或GoogLeNet,然后从FC层提取特征(或任何您要使用的层)。
总之,这就是sklearn-theano的功能所在。你不能用它从头到尾的训练一个模型,但它的神奇之处就是可以把网络作为特征提取器。当需要评估一个特定的问题是否适合使用深度学习来解决时,我倾向于使用这个库作为我的第一手判断。
nolearn
我在PyImageSearch博客上用过几次nolearn,主要是在我的MacBook Pro上进行一些初步的GPU实验和在Amazon EC2 GPU实例中进行深度学习。
Keras把 Theano和TensorFlow包装成了更具人性化的API,而nolearn也为Lasagne做了相同的事。此外,nolearn中所有的代码都是与scikit-learn兼容的,这对我来说绝对是个超级的福利。
我个人不使用nolearn做卷积神经网络(CNNs),但你当然也可以用(我更喜欢用Keras和mxnet来做CNNs)。我主要用nolearn来制作Deep Belief Networks (DBNs)。
DIGITS
DIGITS并不是一个真正的深度学习库(虽然它是用Python写的)。DIGITS(深度学习GPU培训系统)实际上是用于培训Caffe深度学习模式的web应用程序(虽然我认为你可以破解源代码然后使用Caffe以外其他的后端进行工作,但这听起来就像一场噩梦)。
如果你曾经用过Caffe,那么你就会知道通过它的终端来定义.prototxt文件、生成图像数据、运行网络并监管你的网络训练是相当繁琐的。 DIGITS旨在通过让你在浏览器中执行这些任务来解决这个问题。
此外,DIGITS的用户界面非常出色,它可以为你提供有价值的统计数据和图表作为你的模型训练。另外,你可以通过各种输入轻松地可视化网络中的激活层。最后,如果您想测试一个特定的图像,您可以把图片上传到你的DIGITS服务器或进入图片的URL,然后你的Caffe模型将会自动分类图像并把结果显示在浏览器中。干净利落!
Blocks
说实话,虽然我一直想尝试,但截至目前我的确从来没用过Blocks(这也是我把它包括在这个列表里的原因)。就像许多个在这个列表中的其他库一样,Blocks建立在Theano之上,呈现出一个用户友好型的API。
deepy
如果让你猜deepy是围绕哪个库建立的,你会猜什么?
没错,就是Theano。
我记得在前一段时间用过deepy(做了初始提交),但在接下里的大概6-8个月我都没有碰它了。我打算在接下来的博客文章里再尝试一下。
pylearn2
虽然我从没有主动地使用pylearn2,但由于历史原因,我觉得很有必要把它包括在这个列表里。 Pylearn2不仅仅是一般的机器学习库(地位类似于scikit-learn),也包含了深度学习算法的实现。
对于pylearn2我最大的担忧就是(在撰写本文时),它没有一个活跃的开发者。正因为如此,相比于像Keras和mxnet这样的有积极维护的库,推荐pylearn2我还有些犹豫。
Deeplearning4j
这本应是一个基于Python的列表,但我想我会把Deeplearning4j包括在这里,主要是出于对他们所做事迹的无比崇敬——Deeplearning4j为JVM建立了一个开源的、分布式的深度学习库。
如果您在企业工作,你可能会有一个塞满了用过的Hadoop和MapRece服务器的储存器。也许这些你还在用,也许早就不用了。
你怎样才能把这些相同的服务器应用到深度学习里?
事实证明是可以的——你只需要Deeplearning4j。
总计
以上就是本文关于13个最常用的Python深度学习库介绍的全部内容

D. 如何部署企业私有云存储要用什么软件像百度网盘一样,企业员工可以异地存数据,但数据在总部存储。

干脆用Windows Azure吧,它可以同时提供 Windows 和 Linux 虚拟机,支持 PHP、Node.js、Python 等大量开源工具,能够根据实际需求瞬间部署任意数量虚拟机、用无限存储空间,具体你可以官网看下http://www.windowsazure.cn/zh-cn/?l=zh-cn

E. 北大青鸟设计培训:最有“钱途”的15种编程语言

如果你是一个程序员,那么你的美好时光来了。
根据美国劳动统计局的预测,计算机方面的工作岗位将在接下来的七年时间里增长8%。
如果你很擅长于写代码,那么你的薪资可以高达300美元一小时甚至更多。
想要拿到这一领域的高薪,那么你就得掌握最需要的几门编程语言。
下面是你需要知道的15种编程语言:最有“钱途”的15种编程语言1.JavaJava用于构建企业web应用的后端,是当今最为流行的编程语言之一。
Web开发人员可以凭借Java和基于Java的框架为各种用户建立可扩展的Web应用程序。
Java也是为智能手机和平板电脑开发原生Android应用程序的主要语言。
2.JavaScript现在的每一个网站都使用了JavaScript。
如果你想在你的网站上创建互动环节,或者用一些流行的JavaScript框架建立用户界面,那么JavaScript就是首选。
3.C#C#是开发微软平台和服务的主要语言。
无论你是使用Azure和.NET构建现代化的web应用,还是为Windows设备构建app,亦或是为企业创建功能强大的桌面应用,C#都是驾驭微软的最快方式。
想开发游戏?流行的统一游戏开发引擎也使用了C#作为其主要的编程语言之一。
4.PHP需要构建操作数据的Web应用?那么,PHP以及MySQL之类的数据库,是我们必不可少的工具。
PHP活跃于大多数数据驱动的网站,并且是作为内容管理系统的基础性技术,内容管理系统包括Wordpress,它能扩展你的网站功能,使之更为强大。
5.C++如果你需要直接连接到硬件以获得最大的处理能力,那么C++就是最佳选择。
它可以用于开发功能强大的桌面软件、硬件加速的游戏和内存密集型的app。
6.PythonWeb应用、用户界面、数据分析、数据统计——无论是什么问题,Python都有框架可以解决。
最近,Python已经被数据科学家当作是筛选大型数据集的一个关键工具。
7.C为什么C语言至今依然这么受欢迎?原因在于体积。
C语言不但小巧、速度快,而且功能非常强大。
8.SQLSQL能让我们用一种快速、可重复和可靠的方式找到确切的信息。
使用SQL,你就可以轻松地从大型、复杂的数据库中查询和提取有意义的数据。
9.Ruby想要快速创建自己的项目吗?想要创建下一个大型web应用的思路原型吗?那么用Ruby(和RubyonRails)吧。
Ruby语言非常简单易学,其功能又令人难以置信的强大。
10.Objective-C如果你有兴趣做一个适用于iOS的应用程序,那么你需要知道Objective-C。
虽然去年的炒作主要集中在苹果的新的语言Swift上,但是Objective-C依然是构建苹果生态系统app的基础语言。
11.Perl虽然Perl深奥又有点凌乱,但是我们不能否认的是它是一门功能超级强大的编程语言,也是任何人网络安全武器库的重要组成部分。
Perl被认为是任何IT专业人士的关键工具。
12..NET虽然其本身并不是语言,不过.NET是一个用于云服务和应用开发的微软平台。
得利于微软近期的开源力度,.NET也成为了谷歌和苹果的平台。
这样一来,你就可以使用.NET和多种编程语言轻松构建支持多个平台的app了。
13.VisualBasicVisualBasic是.NET平台的一种关键语言,它既允许你构建app来支持你的业务,也可以自动化功能强大的Office应用,如Excel,还能简化最常见的任务。
14.RR促进了大数据的革命,也是2015年凡是需要做认真数据分析的小伙伴都必须知道的编程语言。
从科学和商业再到娱乐和社交媒体,R对几乎所有需要进行统计分析的领域都是好助手。
15.Swift诞生至今甚至还不足一年,Swift作为一种方法和手段,一种可以快速便捷地开发苹果的Mac和iOS操作系统的方法和手段,迅速抓住了来自世界各地的眼球,大量的开发人员趋之若鹜。
java课程http://www.kmbdqn.cn/发现Swift凭借它种类繁多的功能和友好的语法,使得任何人只需要一台Mac,就可以为iOS和MacOSX打造下一个杀手级应用.

F. 如何通过 Python 使用 Azure Blob 存储

Overview

Azure Blob storage is a service that stores unstructured data in the cloud as objects/blobs. Blob storage can store any type of text or binary data, such as a document, media file, or application installer. Blob storage is also referred to as object storage.

This article will show you how to perform common scenarios using Blob storage. The samples are written in Python and use theMicrosoft Azure Storage SDK for Python. The scenarios covered include uploading, listing, downloading, and deleting blobs.

What is Blob Storage?

Azure Blob storage is a service for storing large amounts of unstructured object data, such as text or binary data, that can be accessed from anywhere in the world via HTTP or HTTPS. You can use Blob storage to expose data publicly to the world, or to store application data privately.

Common uses of Blob storage include:

  • Serving images or documents directly to a browser

  • Storing files for distributed access

  • Streaming video and audio

  • Storing data for backup and restore, disaster recovery, and archiving

  • Storing data for analysis by an on-premises or Azure-hosted service

  • Blob service concepts

    The Blob service contains the following components:

  • Storage Account:All access to Azure Storage is done through a storage account. This storage account can be aGeneral-purpose storage accountor aBlob storage accountwhich is specialized for storing objects/blobs. SeeAbout Azure storage accountsfor more information.

  • Container:A container provides a grouping of a set of blobs. All blobs must be in a container. An account can contain an unlimited number of containers. A container can store an unlimited number of blobs. Note that the container name must be lowercase.

  • Blob:A file of any type and size. Azure Storage offers three types of blobs: block blobs, page blobs, and append blobs.

    Block blobsare ideal for storing text or binary files, such as documents and media files.Append blobsare similar to block blobs in that they are made up of blocks, but they are optimized for append operations, so they are useful for logging scenarios. A single block blob can contain up to 50,000 blocks of up to 100 MB each, for a total size of slightly more than 4.75 TB (100 MB X 50,000). A single append blob can contain up to 50,000 blocks of up to 4 MB each, for a total size of slightly more than 195 GB (4 MB X 50,000).

    Page blobscan be up to 1 TB in size, and are more efficient for frequent read/write operations. Azure Virtual Machines use page blobs as OS and data disks.

    For details about naming containers and blobs, seeNaming and Referencing Containers, Blobs, and Metadata.

  • Create an Azure storage account

    The easiest way to create your first Azure storage account is by using theAzure portal. To learn more, seeCreate a storage account.

    You can also create an Azure storage account by usingAzure PowerShell,Azure CLI, or theStorage Resource Provider Client Library for .NET.

    If you prefer not to create a storage account at this time, you can also use the Azure storage emulator to run and test your code in a local environment. For more information, seeUse the Azure Storage Emulator for Development and Testing.

    Download and Install Azure Storage SDK for Python

    Azure Storage SDK for Python requires Python 2.7, 3.3, 3.4, 3.5, or 3.6, and comes in 4 different packages:azure-storage-blob,azure-storage-file,azure-storage-tableandazure-storage-queue. In this tutorial we are going to useazure-storage-blobpackage.

    Install via PyPi

    To install via the Python Package Index (PyPI), type:

    bashCopy

  • pip install azure-storage-blob

  • Note

    If you are upgrading from the Azure Storage SDK for Python version 0.36 or earlier, you will first need to uninstall usingpip uninstall azure-storageas we are no longer releasing the Storage SDK for Python in a single package.

    For alternative installation methods, visit theAzure Storage SDK for Python on Github.

    Create a container

    Based on the type of blob you would like to use, create aBlockBlobService,AppendBlobService, orPageBlobServiceobject. The following code uses aBlockBlobServiceobject. Add the following near the top of any Python file in which you wish to programmatically access Azure Block Blob Storage.

    PythonCopy

  • from azure.storage.blob import BlockBlobService

  • The following code creates aBlockBlobServiceobject using the storage account name and account key. Replace 'myaccount' and 'mykey' with your account name and key.2

    PythonCopy

  • block_blob_service = BlockBlobService(account_name='myaccount', account_key='mykey')

  • Every blob in Azure storage must reside in a container. The container forms part of the blob name. For example,mycontaineris the name of the container in these sample blob URIs:2

    Copy



  • A container name must be a valid DNS name, conforming to the following naming rules:

  • Container names must start with a letter or number, and can contain only letters, numbers, and the dash (-) character.

  • Every dash (-) character must be immediately preceded and followed by a letter or number; consecutive dashes are not permitted in container names.

  • All letters in a container name must be lowercase.

  • Container names must be from 3 through 63 characters long.

  • Important

    Note that the name of a container must always be lowercase. If you include an upper-case letter in a container name, or otherwise violate the container naming rules, you may receive a 400 error (Bad Request).

    In the following code example, you can use aBlockBlobServiceobject to create the container if it doesn't exist.

    PythonCopy

  • block_blob_service.create_container('mycontainer')

  • By default, the new container is private, so you must specify your storage access key (as you did earlier) to download blobs from this container. If you want to make the blobs within the container available to everyone, you can create the container and pass the public access level using the following code.

    PythonCopy

  • from azure.storage.blob import PublicAccess

  • block_blob_service.create_container('mycontainer', public_access=PublicAccess.Container)

  • Alternatively, you can modify a container after you have created it using the following code.

    PythonCopy

  • block_blob_service.set_container_acl('mycontainer', public_access=PublicAccess.Container)

  • After this change, anyone on the Internet can see blobs in a public container, but only you can modify or delete them.

    Upload a blob into a container

    To create a block blob and upload data, use thecreate_blob_from_path,create_blob_from_stream,create_blob_from_bytesorcreate_blob_from_textmethods. They are high-level methods that perform the necessary chunking when the size of the data exceeds 64 MB.

    create_blob_from_pathuploads the contents of a file from the specified path, andcreate_blob_from_streamuploads the contents from an already opened file/stream.create_blob_from_bytesuploads an array of bytes, andcreate_blob_from_textuploads the specified text value using the specified encoding (defaults to UTF-8).

    The following example uploads the contents of thesunset.pngfile into themyblockblobblob.

    PythonCopy

  • from azure.storage.blob import ContentSettings

  • block_blob_service.create_blob_from_path( 'mycontainer', 'myblockblob', 'sunset.png',

  • content_settings=ContentSettings(content_type='image/png')

  • )

  • List the blobs in a container

    To list the blobs in a container, use thelist_blobsmethod. This method returns a generator. The following code outputs thenameof each blob in a container to the console.

    PythonCopy

  • generator = block_blob_service.list_blobs('mycontainer')for blob in generator:

  • print(blob.name)

  • Download blobs

    To download data from a blob, useget_blob_to_path,get_blob_to_stream,get_blob_to_bytes, orget_blob_to_text. They are high-level methods that perform the necessary chunking when the size of the data exceeds 64 MB.

    The following example demonstrates usingget_blob_to_pathto download the contents of themyblockblobblob and store it to theout-sunset.pngfile.2

    PythonCopy

  • block_blob_service.get_blob_to_path('mycontainer', 'myblockblob', 'out-sunset.png')

  • Delete a blob

    Finally, to delete a blob, calldelete_blob.

    PythonCopy

  • block_blob_service.delete_blob('mycontainer', 'myblockblob')

  • Writing to an append blob

    An append blob is optimized for append operations, such as logging. Like a block blob, an append blob is comprised of blocks, but when you add a new block to an append blob, it is always appended to the end of the blob. You cannot update or delete an existing block in an append blob. The block IDs for an append blob are not exposed as they are for a block blob.

    Each block in an append blob can be a different size, up to a maximum of 4 MB, and an append blob can include a maximum of 50,000 blocks. The maximum size of an append blob is therefore slightly more than 195 GB (4 MB X 50,000 blocks).

    The example below creates a new append blob and appends some data to it, simulating a simple logging operation.

    PythonCopy

  • from azure.storage.blob import AppendBlobService

  • append_blob_service = AppendBlobService(account_name='myaccount', account_key='mykey')# The same containers can hold all types of blobsappend_blob_service.create_container('mycontainer')# Append blobs must be created before they are appended toappend_blob_service.create_blob('mycontainer', 'myappendblob')

  • append_blob_service.append_blob_from_text('mycontainer', 'myappendblob', u'Hello, world!')


  • append_blob = append_blob_service.get_blob_to_text('mycontainer', 'myappendblob')

G. 在Azure云中部署支持MVC的ASP.NET程序

之前我就像某人说的那样 I m not quite a cloud guy 但是后来看了各式各样的演示 认识了 Cloud Project 的构成 以及 Mix 里面某人说 It s fun! 以后 就冲着这句 It s fun 我就扔了个 Hello World 上去 感觉还不错的 但是缺乏做点什么的动力 后来就丢在一边了 差不多的时间知道了 Google App Engine 但不知GAE 猴年马月才能用 Net 技术的 我不会python/java 而且现在貌似 GAE 没有跟 WorkerRole 相应的东西 但是好歹也用上了GAppProxy 也叫在 Google 的云上爽了一把

这个情况下 在心爱的微软的云上却只有一个 Hello World 实在太说不过去了 于是打算找一段时间 将自己认识的有能力演示出来的东西都搞到云上去 反正现在 Azure 是免费的(希望以后的收费政策是 GAE 现在那种模式吧) 不用白不用 浪费了自己漂亮的域名多可惜啊 好 就从刚 Release 不久的 Asp Net MVC 开始

如何开始

现在的 Visual Studio Tools for Azure( CTP) 是没有安装所谓的 MVC WebRole 模板的 也就是在 Roles –> Add –> New Web Role Project 不能搞出一个以 MVC 结构开始的模板 只有 Default aspx nfig

显然不够 然后发现 Roles –> Add –> Web Role Project in solution 选项不能用 于是删掉默认的 Web Role Project 新建一个 MVC Web Application 到解决方案 发现该选项仍然是无效的

这时候 我的做法是用 diff 工具比较 MVC 项目文件 (C# 项目就是 csproj 了) 和 Web Role 的项目文件 发现 MVC 项目文件没有 Web 以及一些指向 Azure SDK 中一些程序集的引用 用 diff 工具很快就能补上这些东西了 重新加载修改过的 MVC 项目文件 Roles –> Add –> Web Role Project in solution 就能选上了

如果像我在开始的时候顺便创建了测试项目的话 在上面这个过程可能会造成测试项目丢失对MVC项目的引用 编译时会提示 加上即可 现在 按 F 调试 等一轮初始化过程 MVC 项目默认首页出来了 这就完成了吗?

AspProviders & StorageClient

是差不多了 但是在 Azure 上运行的应用程序可以有多个 Instances 的 每个 Instance 运行在不同的 Appdomain 里(瞎猜的 甚至可能在不同的虚拟机中 分布在不同的地理位置……) 反正是隔离的 那么像登陆这类需要 Session 的操作会产生一些问题 具体什么问题很难说 我没试过 大概就是注册不了啊 登陆记不住之类的 这时候发挥 Google 的长处 会有惊喜的 我找到了 篇( )相关的文章 原文都是英文 比较详细 另外还有几篇出自园友 除了关键的步骤 我就不重复他们的东西了

说起来惭愧 我不是读计算机专业的 之前学过一点 Asp 没怎么学习过 Asp Net 因此很多东西都是不久前才知道的 例如 Asp Net 的 Provider Model 在这里 Provider Model 抽象出储存的实现 使得 Asp Net 的各种状态可以自由选择储存在不同的媒介中 而且可以通过配置文件更改 不得不说这个设计实在非常好 上面给出的第四篇相关文章就叙述了怎么打造一个可以在 Cloud 运行的 Membership Provider

在 Azure SDK 的安装目录中 有一个 Samples zip 里面包含有微软提供的 AspProviders 例子 该例子提供了利用 Azure Storage 作为状态信息的储存媒介的样例 顺便也做了使用里面 StorageClient 样例的例子 哈哈 在这里能发掘不少东西的 因为 StorageClient 很多公共方法没有文档 给 Supress 了

RTFM

AspProviders 文件夹里有一样很重要的东西 就是 providers extended readme mht 我觉得这个文件一定要重视 如果你不打算写自己的 Providers 的话 里面有些代码用红色高亮了

可惜背景是灰色的 看完肯定报废一只眼睛 建议拿 Word 把那里的背景颜色改成黄色 看起来就舒服多了

以下是我 RTFM 总结后的做法 希望对大家有用

修改 nfig 使那些 Providers 生效 大部分代码可以从 AspProvidersDemo 中复制 其中要修改的是 appName 属性 修改成应用的名称 Profile 的那个 inherits 属性删去 否则会出现运行时错误

不使用readme 里面的标准 appSettings 设置 tableServiceBaseUri 等 addtional options 因为发布到云上就不能修改了 然而在本地调试的时候 用的是 local development storage

修改 csdef 和 cscfg 文件 本地调试时按照 相关文章 填写 发布上传之前 cscfg 改成

<ConfigurationSettings> <Setting name= value= YourApplicationName /> <Setting name= AccountName value= YourStorageAccountName /> <Setting name= AccountSharedKey value= YourStorageAccountPrimaryKey /> <Setting name= BlobStorageEndpoint value= /> <Setting name= QueueStorageEndpoint value= /> <Setting name= TableStorageEndpoint value= /> <Setting name= allowInsecureRemoteEndpoints value= false /> ConfigurationSettings>

这里我加上了 这条 否则用默认的 appName 有点恶心 这样做记得在 csdef 文件上加上相应的定义 (多口一句 怎么像 C++ 的 h 文件那样啊 居然要自己声明元数据……)一些已知的问题

在我给出的相关文章里有了 简单归纳就是

注意 Request Url 的额外信息

安装这个 HotFix(同时修复了一个 WPF 设计器的问题)

不明白为什么要 Create Test Storage Tables 的话 请看这里

最后

可能因为Azure 还是 Preview 阶段吧 这些 Providers 的配置都要靠自己RTFM 然后人工完成

lishixin/Article/program/net/201311/13896

H. 怎么在window8下搭建Windows开发环境

开始搭建Windows8开发环境
首先登陆Windows Azure管理平台,创建新的Windows Azure Affinity Group和Storage Account,为随后创建Windows Azure虚拟主机作准备,

1. 创建Windows Azure Affinity Group,点击左边的菜单“Network”选项,在页面中选择“Affinity Group”

点击页面下方的“Create”按钮,创建新的Affinity Group,输入唯一的Affinity Group名称,根据自己所在国家选择距离最近的服务器区域,中国用户推荐选择“East Asia”,然后点击完成。

2. 创建Windows Azure Storage Account, 点击左面菜单“Storage”选项,然后点击页面左下的“New”按钮,

选择Data Services => Storage => Quick Create => 输入自定义URL,选择上步创建的Affinity Group,另外选中“Enable Geo-Replication” 然后点击右下的创建帐户按钮。

3. 创建Windows Azure虚拟主机, 在左侧菜单,选择 “Virtual Machines”选项,默认情况下,virtual machines是空白,

点击页面左下方的“+New”按钮,创建一个新的虚拟主机实例,

选择Compute => Virtual Machine => From Gallery, 页面将载入当前云平台所支持的操作系统镜像文件,

在操作系统镜像文件列表中选择“Windows Server 2012, October 2012”,然后点击右下的按钮,

在虚拟机设置选项中,填写虚拟主机名称,默认登陆用户名是Administrator,设置密码,然后在“Size”中选择“Medium(2 cores, 3.5GB Memory)”,然后点击右下的按钮

为虚拟主机选择设置Storage Account和Affinity Group,这两项,在前文已经设置完成,直接在菜单中选择即可,而DNS名称需要设置唯一的名称,随后远程登陆时将会使用该域名。
在点击创建虚拟主机后,系统将进入镜像恢复和创建系统配置步骤,该步骤完全自动操作完成,无需开发人员干预。
在Virual Machines页面,可以查看当前主机是否已经创建完成,以及运行状态。

当虚拟主机状态为“Running”的时候,即可创建连接到该主机。

4. 在Windows Azure虚拟主机创建Windows 8开发环境
虚拟主机创建完成后,点击虚拟主机名称,即可进入系统资源详细页面,从中可以了解到当前系统资源使用状况以及主机详细信息。

在页面下方,点击“Connect”按钮,会自动生成后缀名为"rdp"的文件,然后提示下载,该文件为远程登陆文件,通过前文安装的远程登陆工具即可导入,运行该文件后,用户即可登陆到Windows Azure虚拟主机。

双击下载的“rdp”文件,将提示连接服务器信息,并且要求输入用户名和密码,

这里用户名密码需要填写前文创建的“Administrator”账号信息。

登陆成功后,即可看到Windows Server 2012操作系统桌面,

为了方便Windows8应用开发,下面需要对操作系统进行简单的设置,首先进入"Server Manager",

点击右边菜单“Manage” => "Server Manager Properties",

在弹出窗口中选中“Do not start Server Manager automatically at logon”,这样在每次启动时,就不会再入Server Manager应用,节省系统资源和带宽。

返回,Server Manager窗口,选择右上菜单“Tools”, 然后选择“Computer Management”选项,

点击后,即可进入Computer Management窗口,在窗口左边菜单中右键点击“Users”目录,然后选择“New User...”,

在新用户添加窗口中,添加用户“Developer”,密码自定义设置,该用户将在后文作为开发账户使用,因为在云平台虚拟主机中,Administrator不能直接作为开发账户,所以才需要创建该用户账户。

创建用户完成后,右键点击“Groups”菜单,然后,右键点击“Administrators”用户组,

添加“Developer”用户进入Administrator管理员用户组,

完成用户

I. 大数据分析工具有哪些

大数据分析工具有:

1、R-编程

R 编程是对所有人免费的最好的大数据分析工具之一。它是一种领先的统计编程语言,可用于统计分析、科学计算、数据可视化等。R 编程语言还可以扩展自身以执行各种大数据分析操作。

在这个强大的帮助下;语言,数据科学家可以轻松创建统计引擎,根据相关和准确的数据收集提供更好、更精确的数据洞察力。它具有类数据处理和存储。我们还可以在 R 编程中集成其他数据分析工具。

除此之外,您还可以与任何编程语言(例如 Java、C、Python)集成,以提供更快的数据传输和准确的分析。R 提供了大量可用于任何数据集的绘图和图形。

2、Apache Hadoop

Apache Hadoop 是领先的大数据分析工具开源。它是一个软件框架,用于在商品硬件的集群上存储数据和运行应用程序。它是由软件生态系统组成的领先框架。

Hadoop 使用其 Hadoop 分布式文件系统或 HDFS 和 MapRece。它被认为是大数据分析的顶级数据仓库。它具有在数百台廉价服务器上存储和分发大数据集的惊人能力。

这意味着您无需任何额外费用即可执行大数据分析。您还可以根据您的要求向其添加新节点,它永远不会让您失望。

3、MongoDB

MongoDB 是世界领先的数据库软件。它基于 NoSQL 数据库,可用于存储比基于 RDBMS 的数据库软件更多的数据量。MongoDB 功能强大,是最好的大数据分析工具之一。

它使用集合和文档,而不是使用行和列。文档由键值对组成,即MongoDB 中的一个基本数据单元。文档可以包含各种单元。但是大小、内容和字段数量因 MongoDB 中的文档而异。

MongoDB 最好的部分是它允许开发人员更改文档结构。文档结构可以基于程序员在各自的编程语言中定义的类和对象。

MongoDB 有一个内置的数据模型,使程序员能够理想地表示层次关系来存储数组和其他元素。

4、RapidMiner

RapidMiner 是分析师集成数据准备、机器学习、预测模型部署等的领先平台之一。它是最好的免费大数据分析工具,可用于数据分析和文本挖掘。

它是最强大的工具,具有用于分析过程设计的一流图形用户界面。它独立于平台,适用于 Windows、Linux、Unix 和 macOS。它提供各种功能,例如安全控制,在可视化工作流设计器工具的帮助下减少编写冗长代码的需要。

它使用户能够采用大型数据集在 Hadoop 中进行训练。除此之外,它还允许团队协作、集中工作流管理、Hadoop 模拟等。

它还组装请求并重用 Spark 容器以对流程进行智能优化。RapidMiner有五种数据分析产品,即RapidMiner Studio Auto Model、Auto Model、RapidMiner Turbo Prep、RapidMiner Server和RapidMiner Radoop。

5、Apache Spark

Apache Spark 是最好、最强大的开源大数据分析工具之一。借助其数据处理框架,它可以处理大量数据集。通过结合或其他分布式计算工具,在多台计算机上分发数据处理任务非常容易。

它具有用于流式 SQL、机器学习和图形处理支持的内置功能。它还使该站点成为大数据转换的最快速和通用的生成器。我们可以在内存中以快 100 倍的速度处理数据,而在磁盘中则快 10 倍。

除此之外,它还拥有 80 个高级算子,可以更快地构建并行应用程序。它还提供 Java 中的高级 API。该平台还提供了极大的灵活性和多功能性,因为它适用于不同的数据存储,如 HDFS、Openstack 和 Apache Cassandra。

6、Microsoft Azure

Microsoft Azure 是领先的大数据分析工具之一。Microsoft Azure 也称为 Windows Azure。它是 Microsoft 处理的公共云计算平台,是提供包括计算、分析、存储和网络在内的广泛服务的领先平台。

Windows Azure 提供两类标准和高级的大数据云产品。它可以无缝处理大量数据工作负载。

除此之外,Microsoft Azure 还拥有一流的分析能力和行业领先的 SLA 以及企业级安全和监控。它也是开发人员和数据科学家的最佳和高效平台。它提供了在最先进的应用程序中很容易制作的实时数据。

无需 IT 基础架构或虚拟服务器进行处理。它可以轻松嵌入其他编程语言,如 JavaScript 和 C#。

7、Zoho Analytics

Zoho Analytics 是最可靠的大数据分析工具之一。它是一种 BI 工具,可以无缝地用于数据分析,并帮助我们直观地分析数据以更好地理解原始数据。

同样,任何其他分析工具都允许我们集成多个数据源,例如业务应用程序、数据库软件、云存储、CRM 等等。我们还可以在方便时自定义报告,因为它允许我们生成动态且高度自定义的可操作报告。

在 Zoho 分析中上传数据也非常灵活和容易。我们还可以在其中创建自定义仪表板,因为它易于部署和实施。世界各地的用户广泛使用该平台。此外,它还使我们能够在应用程序中生成评论威胁,以促进员工和团队之间的协作。

它是最好的大数据分析工具,与上述任何其他工具相比,它需要的知识和培训更少。因此,它是初创企业和入门级企业的最佳选择。

以上内容参考 网络——大数据分析

J. azure是什么什么公司会用到

  • Azure一般指Windows Azure

  • Windows Azure是微软基于云计算的操作系统,现在更名为“Microsoft Azure”,和Azure Services Platform一样,是微软“软件和服务”技术的名称。Windows Azure的主要目标是为开发者提供一个平台,帮助开发可运行在云服务器、数据中心、Web和PC上的应用程序。云计算的开发者能使用微软全球数据中心的储存、计算能力和网络基础服务。Azure服务平台包括了以下主要组件:Windows Azure;MicrosoftSQL数据库服务,Microsoft .Net服务;用于分享、储存和同步文件的Live服务;针对商业的Microsoft SharePoint和Microsoft Dynamics CRM服务。

  • Azure是一种灵活和支持互操作的平台,它可以被用来创建云中运行的应用或者通过基于云的特性来加强现有应用。它开放式的架构给开发者提供了Web应用、互联设备的应用、个人电脑、服务器、或者提供最优在线复杂解决方案的选择。Windows Azure以云技术为核心,提供了软件+服务的计算方法。 它是Azure服务平台的基础。Azure能够将处于云端的开发者个人能力,同微软全球数据中心网络托管的服务,比如存储、计算和网络基础设施服务,紧密结合起来。

  • 微软会保证Azure服务平台自始至终的开放性和互操作性。我们确信企业的经营模式和用户从Web获取信息的体验将会因此改变。最重要的是,这些技术将使我们的用户有能力决定,是将应用程序部署在以云计算为基础的互联网服务上,还是将其部署在客户端,或者根据实际需要将二者结合起来。

  • 时至今日,IT服务已经成为任何商业运作的必备设施。云计算就是要将 IT 服务变得像用电一样简单。企业不需要担心电力来自哪家发电站、电线如何布设。同理,在云计算的帮助下,企业不再费心管理每台服务器用什么处理器、装什么操作系统或者数据库。

  • 云计算提供商集中管理软件和硬件。使用者能够在任何地方随时调用资源,用完以后及时释放以供再分配,从而避免资源浪费,降低了 IT 运作成本。企业得以将有限的资源和人力用于拓展业务、提升核心竞争力。

  • 根据部署模型的不同,云计算大体可以分为以下三类:

  • 公有云

  • 公有云平台提供商通过互联网将存储、计算、应用等资源作为服务提供给大众市场。企业不需要自己构建数据中心,只需要根据使用量支付开支。

  • 如果说传统 IT 设施是企业自己给每个部门准备一台发电机、铺电线。公有云就是企业从专业电力公司买电,基础设施的建设和管理完全交给电力公司,企业用多少电付多少钱。能够最高效、最经济地利用资源。

  • 私有云

  • 私有云是每个企业或者组织独立运作的云基础设施。私有云建立初期需要企业投入更多资源,但更适于保存敏感数据。微软提供了完善的私有云解决方案,具体请看这里。

  • 混合云

  • 顾名思义,混合云就是私有云和公有云的组合,同时结合不同解决方案的优势。混合云既能提供公有云的低成本,也能通过私有云满足企业对核心业务极致安全性的需求。

  • Windows Azure 能够与基于 Windows Server 和 System Center 的私有云解决搭配使用,兼顾企业的具体需求。

  • 架构编辑

  • Windows Azure是专为在微软建设的数据中心管理所有服务器,网络以及存储资源所开发的一种特殊版本Windows Server操作系统,它具有针对数据中心架构的自我管理(autonomous)机能,可以自动监控划分在数据中心数个不同的分区(微软将这些分区称为Fault Domain)的所有服务器与存储资源,自动更新补丁,自动运行虚拟机部署与镜像备份(Snapshot Backup)等能力,Windows Azure被安装在数据中心的所有服务器中,并且定时和中控软件:Windows Azure Fabric Controller进行沟通,接收指令以及回传运行状态数据等等,系统管理人员只要通过Windows Azure Fabric Controller就能够掌握所有服务器的运行状态,Fabric Controller本身是融合了很多微软系统管理技术的总成,包含对虚拟机的管理(System Center Virtual Machine Manager),对作业环境的管理(System Center Operation Manager),以及对软件部署的管理(System Center Configuration Manager)等,在Fabric Controller中被发挥得淋漓尽致,如此才能够达成通过Fabric Controller来管理在数据中心中所有服务器的能力。

  • Windows Azure环境除了各式不同的虚拟机外,它也为应用程序打造了分散式的巨量存储环境(Distributed Mass Storage),也就是Windows Azure Storage Services,应用程序可以根据不同的存储需求来选择要使用哪一种或哪几种存储的方式,以保存应用程序的数据,而微软也尽可能的提供应用程序的兼容性工具或接口,以降低应用程序移转到Windows Azure上的负担。

  • Windows Azure不但是开发给外部的云应用程序使用的,它也作为微软许多云服务的基础平台,像Windows Azure SQL Database或是Dynamic CRM Online这类的在线服务。

  • 综述

  • Windows Azure服务平台现在已经包含如下功能:网站、虚拟机、云服务、移动应用服务、大数据支持以及媒体功能的支持。

  • 网站

  • 允许使用 ASP.NET、PHP 或 Node.js 构建,并使用 FTP、Git 或 TFS进行快速部署。支持 SQL Database、Caching、CDN及Storage。

  • Virtual Machines

  • 在Windows Azure上您可以轻松部署并运行 Windows Server 和 Linux 虚拟机。迁移应用程序和基础结构,而无需更改现有代码。支持 Windows Virtual Machines、Linux Virtual Machines、Storage、Virtual Network、 Identity等功能。

  • Cloud Services

  • 是Windows Azure 中的企业级云平台,使用平台即服务 (PaaS) 环境创建高度可用的且可无限缩放的应用程序和服务。支持多层方案、自动化部署和灵活缩放。支持Cloud Services、SQL Database、Caching、Business Analytics、Service Bus、Identity。

  • Mobile 服务

  • 是Windows Azure提供的移动应用程序的完整后端解决方案,加速连接的客户端应用程序开发。在几分钟内并入结构化存储、用户身份验证和推送通知。支持SQL Database、Mobile 服务。并可以快速生成Windows Phone、Android或者iOS应用程序项目。

  • 大型数据处理

  • Windows Azure 提供的海量数据处理能力,可以从数据中获取可执行洞察力,利用完全兼容的企业准备就绪 Hadoop 服务。PaaS 产品/服务提供了简单的管理,并与 Active Directory 和 System Center 集成。支持Hadoop、Business Analytics、Storage、SQL Database、及在线商店 Marketplace。

  • Media 媒体支持

  • 支持插入、编码、保护、流式处理,可以在云中创建、管理和分发媒体。此 PaaS 产品/服务提供从编码到内容保护再到流式处理和分析支持的所有内容。支持CDN及Storage存储。

  • 开发步骤编辑

  • 微软公司的旗舰开发工具Visual Studio中有一套针对Windows Azure开发工作的工具,这一点并不让人感到惊奇。你可以通过Visual Studio安装Windows Azure工具;具体的安装步骤可能因版本而有所不同。当你创建一个新项目时,你将能够选择一个Windows Azure项目并为你的项目添加web和worker角色。Web角色是专为运行微软IIS实例而设计的;而worker角色则是针对禁用微软IIS的Windows虚拟机的。一旦你已创建了你的角色,那么你就可以添加特定应用程序的代码了。

  • Visual Studio可允许你设置服务配置参数,例如实例数、虚拟机容量、是使用HTTP还是HTTPS以及诊断报告水平等。通常情况下,在启动阶段,它可以帮助用户在本地进行应用程序代码调试。与在Windows Azure中运行应用程序相比,在本地运行你的应用程序可能需要不同的配置设置,但Visual Studio可允许用户使用多个配置文件。而你所需要做的,只是为每一个环境选择一个合适的配置文件。

  • 这个工具包还包括了Windows Azure Compute Emulator,这个工具可支持查看诊断日志和进行存储仿真。

  • 如果Windows Azure工具中缺乏一个针对发布你的应用程序至云计算的过程简化功能,那么这样的一个工具将是不完整的。这个发布应用程序至云计算的功能可允许你指定一个配置与环境(如生产)以及一些先进的功能,例如启用剖析和IntelliTrace,后者是一个收集与程序运行相关详细事件信息的调试工具,它可允许开发人员查看程序在执行过程中发生的状态变化。

  • 当开发和部署代码时,Visual Studio的Windows Azure工具是比较有用的。除此之外,用户应当注意这些代码是专为云计算环境而设计的,尤其是为一个分布式环境设计的。以下的小贴士可有助于防止出现将导致糟糕性能、漫长调试以及运行时分析的潜在问题。

  • 专为云计算而设计的分布式应用程序(或者其它的网络应用程序)的一个基本原则就是,不要在网络服务器上存储应用程序的状态信息。确保在网络服务器层不保存状态信息可实现更具灵活性的应用程序。你可以在一定数量的服务器前部署一个负载平衡器而无需中断应用程序的运行。如果你计划充分利用Windows Azure能够改变所部属服务器数量的功能,那么这一点是特别重要的。这一配置对于打补丁升级也是有所帮助的。我们可以在其它服务器继续运行时为一台服务器打补丁升级,这样一来就能够确保你的应用程序的可用性。

  • 即便是在分布式应用程序的应用中,也有可能存在严重影响性能的瓶颈问题。例如,你的应用程序的多个实例有可能会同时向数据库发出查询请求。如果所有的调用请求是同步进行的,那么就有可能消耗完一台服务器中的所有可用线程。C#和VB两种编程语言都支持异步调用,这一功能可以有助于减少出现阻塞资源风险的可能性。

  • 为最佳性能进行规划

  • 在云计算中维持足够性能表现的关键就是,一方面扩大你运行的服务器数量,一方面分割你的数据和工作负载。诸如无状态会话的设计功能就能够帮助实现数据与工作负载的分割和运行服务器数量的扩容。完全杜绝(或者至少最大限度地减少)跨多个工作负载地使用全局数据结构将有助于降低在你的工作流程中出现瓶颈问题的风险。

  • 如果你将把一个SQL服务器应用程序迁往Windows Azure,那么你就应当评估如何最好地利用不同云计算存储类型的优势。例如,在你的SQL服务器数据库中存储二进制大对象(BLOB)数据结构可能是有意义的,而在Windows Azure云计算中,BLOB存储可以降低存储成本且无需对代码进行显着修改。如果你使用的是高度非归一化的数据模型,且未利用SQL服务器的关系型运行的优势(例如连接和过滤),那么表存储有可能是你为你的应用程序选择的一个更经济的方法。

  • 选择理由

  • Windows Azure 是微软研发的公有云计算平台。该平台可供企业在互联网上运行应用,并可进行扩展。通过Windows Azure,企业能够在多个数据中心快速开发、部署、管理应用程序 。

  • Windows Azure 提供了企业级服务等级协议(SLA)保证,并且可以轻松在位于不同城市的数据中心实现万无一失的异地多点备份,为企业应用提供了可靠的保障。

  • 独到之处

  • 可靠

  • Windows Azure 的平台设计完全消除单点故障可能,并提供企业级的服务等级协议(SLA)。它可以轻松实现异地多点备份,带来万无一失的防灾备份能力,让用户专心开发和运行应用,而不是担心基础设施。2010 年 2 月正式商用以来,WindowsAzure 已经成为波音、宝马等大量跨国公司的选择。

  • 灵活

  • Windows Azure 同时提供 Windows 和 Linux 虚拟机,支持 PHP、Node.js、Python 等大量开源工具。它提供了极大的弹性,能够根据实际需求瞬间部署任意数量虚拟机、调用无限存储空间。Windows Azure 订价灵活,并支持按使用量支付,帮助用户以最低成本将新服务上线而后再按需扩张。

  • 价值

  • WindowsAzure 提供了业界顶尖的云计算技术,它的云存储技术性能、扩展性和稳定性这三项关键指标均在 Nasuni 的权威测试中拔得头筹。Windows Azure 能够与企业现有本地 IT 设施混合使用,为存储、管理、虚拟化、身份识别、开发提供了从本地到云端的整合式体验。

  • +功能

  • 基础设施服务

  • 根据公司具体需求构建基础设施几分钟内完成 Windows Server 或 Linux 虚拟机部署。无需更改代码即可将公司应用程序和基础设施迁移至云端。

  • 功能:Windows 虚拟机、Linux 虚拟机、存储、虚拟网络、身份标识

  • 云服务

  • 打造企业级云平台在平台即服务(PaaS) 环境下开发可无限扩容的应用程序和服务。支持多层方案、自动化部署和弹性扩容。

  • 功能:云服务、SQL 数据库、缓存、服务总线、身份标识

  • 存储

  • 满足数据需求的最优解决方案从 SQL 数据库到 BLOB 存储再到表格(Table),满足存储相关的任何需求。

  • 功能:存储、SQL数据库

  • SQL 数据库

  • 全能的关系型数据库服务使用熟悉的工具和功能强大的 SQL Server 技术快速创建、扩展应用程序并将其延伸至云中。

  • 功能:SQL数据库

  • 益处编辑

  • Azure服务平台的设计目标是用来帮开发者更容易地创建web和互联设备的应用程序。它提供了最大限度的灵活性、选择和使用现有技术连接用户和客户的控制。

  • 利于开发者过渡到云计算

  • 世界上数以百万计的开发者使用.NET Framework和Visual Studio开发环境。利用Visual Studio相同的环境创建可以编写、测试和部署的云计算应用。

  • 快速获得结果

  • 应用程序可以通过点击一个按钮就部署到Azure服务平台,变更相当简单,不需要停工修正,是个试验新想法的理想平台。

  • 想象并创建新的用户体验

  • Azure服务平台可以让你创建Web、手机、使用云计算的复杂应用。与 Live Services连接可以访问4亿Live用户,新的使用新方式与用户交流的机会。

  • 基于标准的兼容性

  • 为了可以和第三方服务交互,服务平台支持工业标准协议,包括HTTP、REST、SOAP、 RSS和 AtomPub.你可以方便地集成基于多种技术或者多平台的应用。

  • 优势编辑

  • 数据和服务的安全性

  • 保护客户数据,服务隐私和信息安全是我们的头等大事。我们将使用在服务企业客户,提供在线服务方面的数十年的经验应用于 Windows Azure 平台。数据完全由客户自主控制。中国地区 WindowsAzure 服务存储的所有数据都将被加密,并且只有客户才有密钥。

  • 开源软件支持

  • Windows Azure 支持大量开源应用程序、框架和语言,并且数量仍在不断增加,这要归功于微软与开源社区的协作。我们清楚开发人员希望使用最适合自身经验、技能和应用程序需求的工具,而我们的目标就是让开发人员能够随意选择自己需要的工具。

  • 融合本地 IT 设施和公有云

  • Windows Azure 是最适合混合 IT 环境的公有云平台。它为企业提供了从本地到云端的整合式体验,覆盖包括存储、管理、虚拟化、身份识别、开发在内的方方面面,帮助您轻松将公有云融入自己的 IT 资产组合。

  • 网络访问性能保证

  • Windows Azure 在中国运行于北部和东部两个主要城市的数据中心,将帮助客户解决异地灾备问题。数据中心将有多家主流运营商接入,以此提高网络服务性能。

  • SDK开发工具编辑

  • Azure服务平台使开发者能够在原有的技能、工具和技术(如微软的.NET Framework,Visual Studio等)的基础上,进一步提高应用程序开发的灵活性和有效性。开发者也可以选

  • Windows Azure

  • Windows Azure

  • 择其他的商业或者开源的开发工具或技术,然后通过Azure服务平台提供的通用Internet标准,比如HTTP、REST、WS-*和AtomPub来进行操作。 微软为我们提供了云计算服务Azure相关的开发工具包,包括以下三个组成部分:

  • (1)Complete offline development environment, including computation and storage services

  • (2)Complete command-line SDK tools and samples

  • (3)Visual Studio add-in that enables local debugging

  • Windows Azure SDK应运而生,对微软云计算感兴趣的程序员们可以适当关注. 微软的SDK(软件开发工具包)工具包运用Java和Ruby语言。这个工具包可使Java和Ruby开发者依托Azure平台应用.NET服务。不过,到目前为止,该工具包只允许Java和Ruby开发者在微软数据中心编写服务程序。官方下载地址:Windows Azure Software Development KIT (January 2009 CTP)

  • 获入华牌照编辑

  • 11月1日,微软宣布与国内互联网基础设施服务提供商世纪互联达成合作,实现微软企业级云服务——Office 365和Windows Azure在中国的落地。根据双方签订的协议,微软将向世纪互联授权技术,由后者运营这两项服务。

  • 通过这种模式,微软终于实现旗下公有云计算平台Windows Azure在中国的落地。这将掀开外资企业进军中国云计算市场的序幕,但并不会对国内云计算厂商造成太大冲击。 [5]

  • 2013年6月6日 世纪互联提供的Windows Azure 中国版本正式启动测试。

  • 案例

  • PPTV亚洲电视网

  • 快速提供覆盖北美、东南亚和欧洲市场的电视云服务,节省上百万美元前期 IT 设施投入。

  • 背景

  • PPTV是华人市场影响力最大的网络视频媒体之一,在全球范围拥有超过 3 亿观众,拥有丰富的视频直播经验和技术积累。过去几年陆续有海外运营商和电视台联系 PPTV,希望 PPTV 帮助提供网络电视解决方案。PPTV 调研后意识到这是一个用户规模上亿的潜在市场,于两年前开始筹备基于云的亚洲电视网(ATN)。

  • PPTV 系统希望通过亚洲电视网为世界各地内容提供商提供一套低门槛的付费电视云平台,让他们将内容上传到 ATN平台,并授权给其它国家/地区的服务运营商使用。

  • 但这么做并不容易,由于视频服务对网速的要求很高,该平台必须在不同地区提供网速以保证观众观看体验。传统的做法是在每个海外市场建设数据中心。这么做成本不菲,而且会拖慢业务拓展速度。

  • 解决方案

  • PPTV 决定与微软公司合作,利用 Windows Azure 公有云平台的海外数据中心网络将亚洲电视网带向全球市场。双方在 2012 年 7 月正式签订合作协议。

  • 亚洲电视网的整个开发过程全部在 Windows Azure 云端完成。其视频点播、分发平台的技术基本沿用 PPTV 自己在国内的私有云平台PPCloud。这个平台拥有一套P2P+CDN的内容分发系统,在视频处理上有自己的编码、转码方式,支持多码率的流媒体。

  • Windows Azure 平台合作伙伴云角(Yungoal)帮助 PPTV 将PPCloud的核心技术迁移至 Windows Azure 云平台。客户上传的视频内容通过 Blob 存储进行保存,并由 Windows Azure 在全球的 CDN 网络将内容送达离观众最近的节点,确保视频播放速度。

热点内容
内置存储卡可以拆吗 发布:2025-05-18 04:16:35 浏览:333
编译原理课时设置 发布:2025-05-18 04:13:28 浏览:374
linux中进入ip地址服务器 发布:2025-05-18 04:11:21 浏览:610
java用什么软件写 发布:2025-05-18 03:56:19 浏览:31
linux配置vim编译c 发布:2025-05-18 03:55:07 浏览:106
砸百鬼脚本 发布:2025-05-18 03:53:34 浏览:940
安卓手机如何拍视频和苹果一样 发布:2025-05-18 03:40:47 浏览:737
为什么安卓手机连不上苹果7热点 发布:2025-05-18 03:40:13 浏览:801
网卡访问 发布:2025-05-18 03:35:04 浏览:507
接收和发送服务器地址 发布:2025-05-18 03:33:48 浏览:369