MacBook Pro适合深度学习吗

您正在使用IE低版浏览器,为了您的雷锋网账号安全和更好的产品体验,强烈建议使用更快更安全的浏览器
发私信给三川
导语:杨杰:“入门深度学习什么都不需要,一张白纸最好。”
同步到新浪微博
用爱救世界
当月热门文章
为了您的账户安全,请
您的邮箱还未验证,完成可获20积分哟!
您的账号已经绑定,现在您可以以方便用邮箱登录
请填写申请人资料如何通过Keras来掌握深度学习
你好,游客
如何通过Keras来掌握深度学习
来源:CSDN&
  本文作者是一位教授深度学习的老师。传授深度学习知识既是他养家糊口的职业(Kaggle比赛获胜队伍的教练),也是他在波兰儿童基金会志愿者工作的一部分。因此,他打算和我们分享一些学习和教授深度学习知识时的心得。本文并不会具体讲解某个神经网络模型,而是总览性的介绍。
  首先,不要害怕接触神经网络模型,入门真的很容易!作者当初害怕难学,现在后悔学晚了。我们只要具备最基本的编程知识、简单的数学知识和机器学习概念就可以上手。作者接下来就会介绍如何上手学习。
  在他看来,最好的学习方法是从高层次的互动方式切入,因此,他建议学习Keras的图像识别任务,这是Python环境下的一个通用神经网络库,只需几行代码就够。若是想再缩减代码量,唯一的方法就是用鸽子。没错,认真脸:鸽子诊断癌症的水平堪比人类专家
  深度学习是什么?
  深度学习是机器学习技术之一,采用多层神经网络模型。近些年来人们在此领域开展了大量的探索,在视觉识别等领域准确率已经达到人类的水平。不像量子计算、核聚变等,这项技术当前正应用于实际产品中,而不是凭空画大饼。大牛曾经说过:
  大多数正常人能在一秒之内完成的任务,现在都能由人工智能来完成。&& 摘自[吴恩达的推特](/andrewyng/status/569792)
  Google和Facebook等公司一直处于技术前沿并不令人感到惊讶。事实上,作者表示每个几个月他都会被某些超出自己期望的技术所征服,比如:
  循环神经网络的神器效果用于模仿生成莎士比亚作品、维基百科词条和LaTeX文章
  一种艺术形式迁移的神经算法
  实时人脸捕捉和重现
  彩色图像彩色化
  用于真实感图像生成的即插即用生成网络
  基于其它医疗诊断技术的专家级皮肤癌分类
  图片到图片的翻译
  教授机器学画猫、狗等动物的简笔画
  看起来似乎像是一件件魔法。如果大家对神经网络模型感兴趣,可以观看系列入门教程的视频:
  Stephen Welch的神经网络模型解密
  J Alammar的神经网络基础指导
  这些算法往往需要海量训练数据。下图是逻辑回归、随机森林和深度学习三种方法在Higgs数据集上的AUC分数(横坐标的单位是百万):
  一般来说,我们并不能保证深度学习的效果比其它方法好,比如随机森林或者决策树,即使在数据量足够大的情况下。
  开始实践
  是否需要Skynet之类的神器帮助运行呢?显然不必,甚至可以在浏览器内运行代码:
  TensorFlow Playground提供可视化界面的样本分类
  ConvNetJS用于数字和图像识别
  Keras.js Demo在浏览器中可视化展现和使用网络模型
  如果想要在Python环境中使用Keras,参考这个小示例。
  Python和机器学习
  作者之前提到过Python和机器学习是必备的基础知识。相关的教程可以分别参考作者曾经的文章《基于Python的数据科学介绍》以及《统计与机器学习》。
  对于Python,如果大家的电脑里已经安装了Anaconda环境,只需再安装TensorFlow和Keras。
  至于机器学习,在入坑深度学习之前并不需要掌握太多的相关知识。当然,之后在实践中可以分析某个问题是否能够采取更简单的方法。比如,随机森林算法就是万能钥匙,适用于大部分问题。大家需要理解我们为什么要训练模型,然后测试它的效果。可以参考下面的教程:
  Stephanie Yee和Tony Chu的《机器学习的可视化介绍》
  数学知识
  深度学习模型中用到的数学知识还算是比较基础。下面罗列了一些,这些知识在其它网络模型里也很常见:
  向量、矩阵和多维数组;
  加法和乘法;
  卷积运算提取局部特征;
  激活函数:sigmoid, tanh或者ReLU等;
  softmax将向量转化为概率值;
  log-loss(cross-entropy)作为惩罚项
  网络参数优化的梯度反向传播算法
  随机梯度下降及其变种(比如冲量)
  如果大家的学科背景是数学、统计学、物理或者信号处理,那应该绰绰有余了。如果只有高中数学的基础,也别慌。用于识别数字的卷计算机网络也可以仅用Excel表格实现:Deep Spreadsheets with ExcelNet。
  向量计算是深度学习和其它机器学习算法的基本内容(比如,作者曾经介绍过word2vec的文章)。作者建议大家参考下面几份学习资料:
  J. Str&m, K. &Astr&m, 和 T. Akenine-M&ller 编写的《Immersive Linear Algebra》
  应用数学和机器学习基础:《深度学习》的线性代数章节
  Brendan Fortuner 的《Linear algebra cheat sheet for deep learning 》
  以及Numpy相关的一些基础知识:
  Nicolas P. Rougier 的《From Python to Numpy》
  《SciPy lectures: The NumPy array object》
  目前,市面上有很多流行的深度学习库,包括Tensorflow、Theano、Torch和Caffe。它们都提供了Python接口(Torch也开放了Python接口:PyTorch)
  我们该如何选择呢?作者建议,首先在标准测试集上跑一遍各个方法的效果,因为过早的优化是万恶之源。最明智的做法是选一个容易开发、在线文档齐全而且安装方便的工具。
  如果大家信奉Python的哲学(简洁、易读),Keras正合你意。它属于神经网络的上层封装库,对Tensorflow和Theano做了封装。下图是大家较为认可的各个工具排名:
  深度学习框架概览,2017年4月,Keras创作者Francois Chollet根据Github评分制作
  除了Github的活跃度,也可以参考根据arXiv论文得到的排名,参见by Andrej Karpathy的报告《机器学习趋势一瞥》。工具的流行程度越高,意味着如果你遇到了问题,在Google搜索得到答案的机会也越大。Keras的学习文档非常友善,它的官方博客也提供了宝贵的资源。为了全面了解在 jupyter notebook 环境下使用 Keras,作者强烈建议阅读:
  Valerio Maggio的《基于Keras和Tensorflow的深度学习》
  这里也有几篇篇幅较短的文章:
  Erik Reppel写的基于Keras 和 Cats 的卷计算机网络可视化
  Petar Veli?kovi? 写的深度学习完全入门:基于Keras的卷计算机网络
  Jason Brownlee写的用Keras和卷计算机网络识别手写数字
  另外,作者还开发了许多非常实用的Keras插件。比如查看序列模型网络内部数据流的ASCII summary,比model.summary()用起来更方便。它可以显示层级、数据维度以及待优化的参数数量。例如,一个数字识别网络是这样的:
  OPERATION DATA DIMENSIONS WEIGHTS(N) WEIGHTS(%)
  Input ##### 32 32 3
  Conv2D \|/ ------------------- 896 0.1%
  relu ##### 32 32 32
  Conv2D \|/ ------------------- %
  relu ##### 30 30 32
  MaxPooling2D Y max ------------------- 0 0.0%
  ##### 15 15 32
  Dropout | || ------------------- 0 0.0%
  ##### 15 15 32
  Conv2D \|/ ------------------- %
  relu ##### 15 15 64
  Conv2D \|/ ------------------- %
  relu ##### 13 13 64
  MaxPooling2D Y max ------------------- 0 0.0%
  ##### 6 6 64
  Dropout | || ------------------- 0 0.0%
  ##### 6 6 64
  Flatten ||||| ------------------- 0 0.0%
  ##### 2304
  Dense XXXXX ------------------- .3%
  relu ##### 512
  Dropout | || ------------------- 0 0.0%
  ##### 512
  Dense XXXXX ------------------- %
  softmax ##### 10
  Tensorflow
  如果不用Keras,作者则建议只用Tensorflow。它比Keras更底层、更灵活,能直接对各个多维数组参数做优化。下面也是作者推荐的一些相关资源:
  官方教程Tensorflow Tutorial非常不错
  Martin G&rner 的《不读博士也能学习Tensorflow和深度学习》
  Aymeric Damien 写的《Tensorflow入门教程和示例》
  Nathan Lintz 写的《Tensorflow框架简单教程》
  另外,TensorBoard是一款在训练过程中调试和查看数据非常方便的工具。
  Theano与Tensorflow很相似,但是更早出现,略微难以上手。比如,大家需要自己动手写变量更新的代码。不提供典型的神经网络层级,往往还需要再调用lasagne包。作者也推荐了入门教程:
  Marek Rei编写的Theano教程
  数据集
  解决每个机器学习问题都离不开数据。我们没办法告诉计算机&检测图片中是否有猫&这个命令,希望计算机直接给我们答案。而是要提供大量含有猫和不含有猫的图片,然后让计算机从这些数据中学习。因此,我们手头必须要先有一份数据集。这并不是机器学习或是深度学习的短板,任何的学习方法都离不开数据!
  作者推荐了几个常用的数据集。它们的共同点就是&&常用!这就意味着大家很容易在网上找到可以运行的示例,并且前人已经留下了大量的经验。
  很多好的想法在MNIST数据集上并不管用(比如batch norm)。相反,很多糟糕的想法对MNIST有效,但是却无法迁移到实际问题中。&& 摘自[Fran&ois Chollet 的推特](/fchollet/status/045120)
  MNIST是一份手写数字识别数据集(6的灰度图)。它适合用来测试本机上安装的Keras是否成功。
  notMNIST
  其实,我曾经说过,AI研究者面临的最难回答的问题就是&字母A和I是什么?& && [Douglas R. Hofstadter](https://web.stanford.edu/group/SHR/4-2/text/hofstadter.html)(1995年)
  另一个更有趣、相对经典机器学习算法也更难解决的数据集是notMNIST(异形字体的字母A-J)。这里提供了Keras加载和用逻辑回归预测notMNIST的代码。
  CIFAR是经典的图像识别数据集,都是32x32尺寸的照片。它分为两种版本:10类简单的照片(包括猫、狗、青蛙、飞机等)和100类更难的照片(包括海狸、海豚、水獭、海豹、鲸鱼等)。作者建议先从简单的10类照片开始学习,因为训练复杂的模型往往要耗费大量的时间(作者用了7年的MacBook Pro需要跑12个小时)。
  其它数据集
  深度学习算法都需要大量的数据。如果大家想从头开始训练网络模型,至少需要大约10000张低分辨率的图片。当数训练据匮乏时,网络模型很可能学不到任何模式。那么该怎么办呢?
  只要肉眼看得清,使用低分辨率的图像也无妨
  尽可能多的收集训练数据,最好达到百万级别
  在已有的模型基础上开始训练
  用现有数据集构造更多的训练数据(比如旋转、平移和扭曲)
  站在巨人的肩膀上
  训练神经网络模型就如同烹饪,原料(网络层)和菜谱(通用网络结构)都有固定的搭配。最具有影响力的烹饪大赛就是ImageNet Large Scale Visual Recognition Challenge,用50万张照片训练模型来识别几百类问题。这里介绍了一些神经网络结构,输入数据基本都是224x224x3的图片:
  圆形的大小代表参数的数量。图中没有提到SqueezeNet,这个网络结构极大地压缩了模型参数(减少约50倍)。
  一些主要的图像分类模型可以直接从keras.applications模块加载使用,比如Xception, VGG16, VGG19, ResNet50, InceptionV3。另外一些模型尽管不能直接加载,但是也可以很方便的在网上找到。这些网络模型有两大作用:
  给我们搭建新的网络模型提供了参考
  便于大家在其基础上继续训练模型(也被称为迁移学习)
  作者列举了图像领域的几种其它的网络结构:
  U-Net:用卷计神经网络对生物医学图像进行分割
  卷积神经网络提取视网膜血管,Keras实现
  Kaggle超声神经提取比赛的深度学习教程 ,Keras实现
  一种艺术风格的神经算法
  神经网络实现风格转换和涂鸦,作者是Somshubra Majumdar
  图像分割领域的CNN进化史:从 R-CNN 到蒙板 R-CNN,作者是Dhruv Parthasarathy
  硬件设施
  对于超小规模问题(比如MNIST和notMNIST),个人电脑就能训练数据,甚至笔记本电脑也能完成。
  对于普通小规模的问题(比如CIFAR),PC机应该还是能扛得住,但是需要耐心地等待训练过程。
  对于中等规模或是大规模的问题,基本上要依赖装有GPU的大型机器。例如,作者他们花了整整两天的时间来训练Kaggle比赛的卫星照片数据:
  Deep learning for satellite imagery via image segmentation,作者Arkadiusz Nowaczyński
  若用高端CPU机器训练,需要若干星期的时间:
  Benchmarks for popular convolutional neural network models,作者Justin Johnson
  然而,最简单划算的利用GPU途径就是按使用时长向平台租用机器。比如使用亚马逊云,作者也提供了一部分使用指南:
  Keras with GPU on Amazon EC2 & a step-by-step instruction,作者Mateusz Sieniawski
  Running Jupyter notebooks on GPU on AWS: a starter guide,作者Francois Chollet
  拓展学习
  作者鼓励大家多动手写代码。举个例子,notMNIST 和 CIFAR-10 就非常适合初学者练习。有时候,参考别人的代码并做修改,然后观察输出结果的变化,也不失为是一条学习的捷径。
  神经网络学习课程:
  CS231n: Convolutional Neural Networks for Visual Recognition,Andrej Karpathy教授开课
  经典教材推荐:
  Goodfellow, Yoshua Bengio 和 Aaron Courville等几位大牛联合编写的Deep Learning, An MIT Press book
  以及 Michael Nielsen 编写的Neural Networks and Deep Learning
  其它资料
  深度学习的应用产品多种多样,作者从各个不同的角度收集整理了入门级的材料。作者强调,别想着把它们都读完,他只是想给大家多一点启发,不是为了显摆!
相关新闻 & & &
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款市场合作,请您联系:
品牌广告合作,请您联系:
企业创新合作,请您联系:
地方合作,请您联系:
满足以下场景,获得更高通过率:
新融资求报道
新公司求报道
新产品求报道
创投新闻爆料
为你推送和解读最前沿、最有料的科技创投资讯
聚集15家顶级投资机构的专业互联网融资平台
聚集全球最优秀的创业者,项目融资率接近97%,领跑行业一个在日深度学习PhD的工作环境设置 - 知乎专栏
{"debug":false,"apiRoot":"","paySDK":"/api/js","wechatConfigAPI":"/api/wechat/jssdkconfig","name":"production","instance":"column","tokens":{"X-XSRF-TOKEN":null,"X-UDID":null,"Authorization":"oauth c3cef7c66aa9e6a1e3160e20"}}
{"database":{"Post":{"":{"contributes":[],"title":"一个在日深度学习PhD的工作环境设置","author":"vincentzlt","content":"来到东京做机器翻译已经将近半年了。今天记录一下工作环境,如果以后写了工作技巧或者技术相关的文章,方便回来看一下,理解问题的setting。真·全平台 的工作环境1. 工作场景和流程先说一下平时作为一个苦逼又有些想法的PhD是如何工作的。首先研究室帮忙配置了高配MacBook Pro 13寸,希望我们能好好研究。平时一般出门就带着。除了写代码,每周两次到三次的组会“发表”也是必须的。所谓“发表”,便是一般的progress report或者更正式一点的presentation。此时会用到MacBook链接投影仪。跑实验的时候remote到研究室的服务器(Ubuntu系统),十来块GPU大家轮流使用。但是研究室地小人多,虽有大的外界显示器和 Herman Miller Aeron,讨论问题还好,工作起来难免还是有些嘈杂。一般带耳机高速工作一段时间之后我都会回家。家离研究室5分钟,自用的是之前自己装的pc,Win10操作系统。家中安静,且有机械键盘,也比较适合工作。由于是校外,需要两次remote才可连到研究室的服务器。2. 希望工作体验方便·顺滑·无缝的coding、文件交换、备份。如果可以,最好有简单、快速、好用的图形界面配合完成如下:codingJupyter Notebook感觉必不可少,需要能够在服务器上运行,本地编程。以前习惯了VS Code如果能remote更好。文件交换、备份scp和rsync够简单,但是文件管理上只有ls恐怕还是有点儿捉襟见肘。之前习惯了Win平台的Total Commander,现在的想法是文件管理和备份一同结了。sftp到家中电脑,Total Commander文件管理之后再同步回去。其他暂时还没想好,有了就补充为何要记录现在一下用三种操作系统,他们之间的协作显得非常重要。个平台都有好用的工具,如何拧到一起,更好的为群众服务,很有可能在具体的问题上需要具体的分析。我写下我的一些技巧和感受,可能会对人有所启发。如果能有人讨论,看看有什么需求,我会一起研究写出来。","updated":"T07:00:35.000Z","canComment":false,"commentPermission":"anyone","commentCount":0,"collapsedCount":0,"likeCount":0,"state":"published","isLiked":false,"slug":"","isTitleImageFullScreen":false,"rating":"none","titleImage":"/v2-d29b4dc279fe5782cad37f7e270b4630_r.jpg","links":{"comments":"/api/posts//comments"},"reviewers":[],"topics":[{"url":"/topic/","id":"","name":"深度学习(Deep Learning)"},{"url":"/topic/","id":"","name":"工作环境"},{"url":"/topic/","id":"","name":"博士"}],"adminClosedComment":false,"titleImageSize":{"width":1200,"height":480},"href":"/api/posts/","excerptTitle":"","tipjarState":"closed","annotationAction":[],"sourceUrl":"","pageCommentsCount":0,"hasPublishingDraft":false,"snapshotUrl":"","publishedTime":"T15:00:35+08:00","url":"/p/","lastestLikers":[],"summary":"来到东京做机器翻译已经将近半年了。今天记录一下工作环境,如果以后写了工作技巧或者技术相关的文章,方便回来看一下,理解问题的setting。真·全平台 的工作环境1. 工作场景和流程先说一下平时作为一个苦逼又有些想法的PhD是如何工作的。首先研究室帮忙配…","reviewingCommentsCount":0,"meta":{"previous":null,"next":null},"annotationDetail":null,"commentsCount":0,"likesCount":0,"FULLINFO":true}},"User":{"vincentzlt":{"isFollowed":false,"name":"vincentzlt","headline":"机器翻译门外汉","avatarUrl":"/0b6fca89b_s.jpg","isFollowing":false,"type":"people","slug":"vincentzlt","bio":"机器学习/机器翻译","hash":"6add3bebdae5caa2dba2","uid":56,"isOrg":false,"description":"机器翻译门外汉","profileUrl":"/people/vincentzlt","avatar":{"id":"0b6fca89b","template":"/{id}_{size}.jpg"},"isOrgWhiteList":false,"badge":{"identity":null,"bestAnswerer":null}}},"Comment":{},"favlists":{}},"me":{},"global":{"experimentFeatures":{"ge3":"ge3_9","ge2":"ge2_1","appStoreRateDialog":"close","nwebStickySidebar":"sticky","qrcodeLogin":"qrcode","favAct":"default","default":"None","mobileQaPageProxyHeifetz":"m_qa_page_nweb","newMore":"new","iOSNewestVersion":"4.2.0","newMobileColumnAppheader":"new_header","sendZaMonitor":"true","homeUi2":"default","answerRelatedReadings":"qa_recommend_by_algo_related_with_article","wechatShareModal":"wechat_share_modal_show","liveReviewBuyBar":"live_review_buy_bar_2","qaStickySidebar":"sticky_sidebar","androidProfilePanel":"panel_b","liveStore":"ls_a2_b2_c1_f2","zcmLighting":"zcm"}},"columns":{"next":{}},"columnPosts":{},"columnSettings":{"colomnAuthor":[],"uploadAvatarDetails":"","contributeRequests":[],"contributeRequestsTotalCount":0,"inviteAuthor":""},"postComments":{},"postReviewComments":{"comments":[],"newComments":[],"hasMore":true},"favlistsByUser":{},"favlistRelations":{},"promotions":{},"switches":{"couldAddVideo":false},"draft":{"titleImage":"","titleImageSize":{},"isTitleImageFullScreen":false,"canTitleImageFullScreen":false,"title":"","titleImageUploading":false,"error":"","content":"","draftLoading":false,"globalLoading":false,"pendingVideo":{"resource":null,"error":null}},"drafts":{"draftsList":[],"next":{}},"config":{"userNotBindPhoneTipString":{}},"recommendPosts":{"articleRecommendations":[],"columnRecommendations":[]},"env":{"edition":{},"isAppView":false,"appViewConfig":{"content_padding_top":128,"content_padding_bottom":56,"content_padding_left":16,"content_padding_right":16,"title_font_size":22,"body_font_size":16,"is_dark_theme":false,"can_auto_load_image":true,"app_info":"OS=iOS"},"isApp":false},"sys":{},"message":{"newCount":0},"pushNotification":{"newCount":0}}当前位置:
深度学习开发环境搭建教程(Mac篇)
深度学习开发环境搭建教程(Mac篇)
本文将指导你如何在自己的 Mac 上部署 Theano + Keras 的深度学习开发环境。如果你的 Mac 不自带 NVIDIA 的独立显卡(例如 15 寸以下或者 17 年新款的 Macbook。具体可以在 "关于本机 -& 系统报告 -& 图形卡/显示器 " 里查看),那么你可能无法在这台 Mac 上使用 GPU 训练深度学习模型。不过这并不值得遗憾。事实上,我在自己的 Macbook 上(15-inch,Early 2013,NVIDIA GeForce GT 650M 1024 MB)做了一个简单的测试:在 mnist 数据集上训练 CNN 模型时,GPU 模式相对于 CPU 模式仅节省了 1/3 的时间。这可能要归咎于 Mac 上赢弱的显卡。相比之下,我更推荐购买一台有着强劲性能的显卡的 PC 本(比如某些游戏本)来搭建深度学习的开发环境,或者是直接租赁 AWS 的 Instance 服务。下面步入正题。安装 GPU 开发环境几乎所有的主流深度学习框架在使用 GPU 进行模型训练时都依赖于两个底层环境:CUDA 和 cuDNN。前者是一个使用 GPU 进行并行计算的平台,后者是一个封装了使用 GPU 加速神经网络计算的 library。安装 CUDA
确保你的显卡被 CUDA 所兼容。前往 CUDA-capable GPU 检查可用的显卡型号。
接下来,安装 xcode(通过 App Store)和命令行工具:xcode-select --install。这一步会自动安装 clang 编译器,可以在命令行里输入:/usr/bin/cc --version进行验证。
clang 编译器也是安装 Theano 的预备环境之一。
前往官网下载并安装 CUDA8.0(dmg 安装包)。注意选择相应的平台。这一步会同时安装 CUDA driver 和 CUDA toolkit。
配置环境变量。打开~/.bash_profile,输入四行命令:
export CUDA_ROOT = /Developer/NVIDIA / CUDA - 8.0 export PATH = $CUDA_ROOT / bin$ {
PATH: +:$ {
}}export DYLD_LIBRARY_PATH = $CUDA_ROOT / lib$ {
DYLD_LIBRARY_PATH: +:$ {
DYLD_LIBRARY_PATH
}}export LD_LIBRARY_PATH = $CUDA_ROOT / lib: $LD_LIBRARY_PATH
其中,环境变量 CUDA_ROOT 给 Theano 指定了 CUDA 的安装目录,也可以被设置为 /usr/local/cuda(这两个路径下的文件均通过软链接被 link 到了一起)。
配置完成后,退出编辑器,source ~/.bash_profile并执行 nvcc -V验证 CUDA 的安装是否正常。
安装 cuDNN
前往官网下载 cuDNN 压缩包。注意选择合适的平台。我下载的是 cuDNN5.1 for CUDA8.0(截止到 17 年 4 月,Theano 尚不支持 cuDNN6.0)。
解压缩下载的文件,将 include目录下的 *.h文件复制到 $CUDA_ROOT/include目录下;将 lib目录下的 *.so文件复制到 $CUDA_ROOT/lib目录下。
至此,完成了 GPU 开发环境的基本部署。安装 TheanoTheano 的安装极其简单:
首先,前往 Miniconda 安装 Conda
使用 Conda 安装第三方依赖("&&" 里为可选包):
conda install numpy scipy mkl &nose& &sphinx& &pydot-ng&
使用 Conda 安装 Theano(如果出现网络连接异常,也可以使用 pip 进行安装。参见官网安装指南):
conda install theano pygpu
安装 KerasKeras 是一个建立在 Theano 和 TensorFlow 基础上,封装了大量底层接口,方便研究人员快速搭建模型原型的深度学习开发框架。它提供了 pip 和从源码直接安装两种方式。使用 pip 安装:sudo pip install keras从源码直接安装:git clone https:///fchollet/keras.gitcd kerassudo python setup.py installKeras 默认以 TensorFlow 为底层计算引擎。第一次执行 import keras命令后,会生成~/.keras/keras.json文件。打开这个文件,将 "backend": "tensorflow"修改为 "backend": "theano",即完成了后端计算引擎到 Theano 的切换。至此,一个基本的深度学习开发环境已搭建完成。重启电脑以确保所有配置均已生效。环境测试我们可以运行一些 demo 来测试环境的安装是否正常。从 Github 上下载 Keras 的源码,进入 examples子目录,输入命令:THEANO_FLAGS=mode=FAST_RUN python mnist_cnn.py该命令将以 CPU 模式在 mnist 数据集上训练 CNN 模型。输入命令:THEANO_FLAGS='mode=FAST_RUN,device=cuda,floatX=float32,optimizer_including=cudnn' python mnist_cnn.py该命令将以 GPU 模式(并使用 cudnn 加速)在 mnist 数据集上训练 CNN 模型。如果一切正常,你将看到类似下图的屏幕输出:
我在自己的 Macbbok Pro(15 寸,13 年初,GT 650M 的 1024MB 显卡)上分别测试了 CPU,GPU,GPU with cuDNN 三种模式下 CNN 模型(mnist 数据集)的训练性能,其结果如下(单位:秒):出乎意料的是,如果没有 cuDNN 的加速,Mac 上 GPU 的计算性能远不如 CPU!而即便使用了 cuDNN 的加速,模型的训练也只不过缩短了 1/3 的时间。因此,如果想认真地玩一玩深度学习模型,还是建议上高性能的显卡,或者直接用 AWS 的 GPU 服务吧!
与本文相关文章}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信