微波EDA网,见证研发工程师的成长! 2025濠电姷鏁告慨鎾儉婢舵劕绾ч幖瀛樻尭娴滅偓淇婇妶鍕妽闁告瑥绻橀弻锝夊箣閿濆棭妫勭紒鐐劤濞硷繝寮婚悢鍛婄秶闁告挆鍛缂傚倷鑳舵刊顓㈠垂閸洖钃熼柕濞炬櫆閸嬪棝鏌涚仦鍓р槈妞ゅ骏鎷�04闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏℃櫆闁芥ê顦純鏇㈡⒒娴h櫣甯涢柛鏃€娲熼獮鏍敃閵堝洣绗夊銈嗙墱閸嬬偤鎮¢妷鈺傜厽闁哄洨鍋涢埀顒€婀遍埀顒佺啲閹凤拷15闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏℃櫇闁逞屽墰缁絽螖娴h櫣顔曢梺鐟扮摠閻熴儵鎮橀埡鍐<闁绘瑢鍋撻柛銊ョ埣瀵濡搁埡鍌氫簽闂佺ǹ鏈粙鎴︻敂閿燂拷 闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏犖ч柛灞剧煯婢规洖鈹戦缁撶細闁告鍐f瀺鐎广儱娲犻崑鎾舵喆閸曨剛锛涢梺鍛婎殕婵炲﹪鎮伴鈧畷鍫曨敆婢跺娅屽┑鐘垫暩婵挳骞婃径鎰;闁规崘顕ч柨銈嗕繆閵堝嫯鍏岄柛娆忔濮婅櫣绱掑Ο鑽ゎ槬闂佺ǹ锕ゅ﹢閬嶅焵椤掍胶鍟查柟鍑ゆ嫹婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾剧粯绻涢幋娆忕仾闁稿鍊濋弻鏇熺箾瑜嶉崯顐︽倶婵犲洦鈷戦柟绋挎捣缁犳挻銇勯敂璇茬仯缂侇喖顭烽、娑㈡倷鐎电ǹ寮抽梻浣虹帛濞叉牠宕愰崷顓涘亾濮樼偓瀚�
首页 > 硬件设计 > 嵌入式设计 > 对比深度学习十大框架:TensorFlow 并非最好?

对比深度学习十大框架:TensorFlow 并非最好?

时间:09-21 来源:互联网 点击:

2016 年已经过去,BEEVA Labs 数据分析师 Ricardo Guerrero Gomez-Ol 近日在 Medium 上发表了一篇文章,盘点了目前最流行的深度学习框架。为什么要做这一个盘点呢?他写道:「我常听到人们谈论深度学习——我该从哪里开始呢?TensorFlow 是现在最流行的吧?我听说 Caffe 很常用,但会不会太难了?在 BEEVA Labs,我们常常需要应对许多不同的深度学习库,所以我希望能够将我们的发现和感想分享出来,帮助那些刚刚进入深度学习这一美丽世界的人。」

  TensorFlow

链接:https://www.tensorflow.org/

对于那些听说过深度学习但还没有太过专门深入的人来说,TensorFlow 是他们最喜欢的深度学习框架,但在这里我要澄清一些事实。

在 TensorFlow 的官网上,它被定义为「一个用于机器智能的开源软件库」,但我觉得应该这么定义:TensorFlow 是一个使用数据流图(data flow graphs)进行数值计算的开源软件库。在这里,他们没有将 TensorFlow 包含在「深度学习框架」范围内,而是和 Theano 一起被包含在「图编译器(graph compilers)」类别中。

在结束了 Udacity 的 Deep Learning 课程(https://www.udacity.com/course/deep-learning--ud730)之后,我的感觉是 TensorFlow 是一个非常好的框架,但是却非常低层。使用 TensorFlow 需要编写大量的代码,你必须一遍又一遍地重新发明轮子。而且我并不是唯一一个这么想的人。Andrej Karpathy 在 Twitter 上就多次吐过槽:

闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偛顦甸崹楣冨箛娴e湱绋佺紓鍌氬€烽悞锕佹懌闂佸憡鐟ョ换姗€寮婚悢纰辨晬闁挎繂娲eЧ妤呮偡濠婂懎顣奸悽顖涘浮閹瑦绻濋崶銊у帾婵犵數鍊埀顒勫磻閹剧粯鐓涢悗锝庡亞婢у灚鎱ㄦ繝鍛仩闁圭懓瀚版俊鎼佸Ψ閿旀儳缍掗梻鍌欒兌閹虫捇宕甸弽顓炵闁跨噦鎷�...

推文:我希望 TensorFlow 能标准化我们的代码,但它是低层面的,所以我们在其上面的层上分道扬镳了:Slim、PrettyTensor、Keras、TFLearn ...  

闂傚倸鍊搁崐鎼佸磹妞嬪海鐭嗗〒姘e亾妤犵偛顦甸崹楣冨箛娴e湱绋佺紓鍌氬€烽悞锕佹懌闂佸憡鐟ョ换姗€寮婚悢纰辨晬闁挎繂娲eЧ妤呮偡濠婂懎顣奸悽顖涘浮閹瑦绻濋崶銊у帾婵犵數鍊埀顒勫磻閹剧粯鐓涢悗锝庡亞婢у灚鎱ㄦ繝鍛仩闁圭懓瀚版俊鎼佸Ψ閿旀儳缍掗梻鍌欒兌閹虫捇宕甸弽顓炵闁跨噦鎷�...

比如:我们在 OpenAI 使用 TensorFlow,但我们似乎都更喜欢其它框架,我们有些人还写自定义代码。叹

几个月前,我去参加了「Google Experts Summit: TensorFlow, Machine Learning for everyone, with Sergio Guadarrama」。Sergio 是开发 TensorFlow 的一位工程师,但他在会上没有展示 TensorFlow,而是展示了一个在 TensorFlow 上工作的更高层的库 tf.contrib:https://www.tensorflow.org/tutorials/tflearn/。我的看法是:他们内部已经意识到如果要让更多人使用 TensorFlow,他们就需要以更高的抽象水平在其上创建一些层,从而简化 TensorFlow 的使用。

TensorFlow 支持 Python 和 C++,也允许在 CPU 和 GPU 上的计算分布,甚至支持使用 gRPC 进行水平扩展。

总结:TensorFlow 非常好,但你必须了解它好在哪里。如果你不想什么事都自己手动去做和重新发明轮子,你可以使用更简单的库(安利一下 Keras)。

  Theano

链接:http://deeplearning.net/software/theano/

Theano 是最老牌和最稳定的库之一。据我所知,深度学习库的开端不是 Caffe 就是 Theano。

和 TensorFlow 类似,Theano 是一个比较低层的库。也因此它并不适合深度学习,而更适合数值计算优化。它支持自动的函数梯度计算,带有 Python 接口并集成了 Numpy,这使得它从一开始就成为了通用深度学习领域最常使用的库之一。

今天,Theano 依然效果良好,但由于它不支持多 GPU 和水平扩展,在 TensorFlow 的热潮下(它们针对同一个领域),Theano 已然开始被遗忘了。

  Keras

链接:https://keras.io/

「You have just found Keras.」

上面这句话是你打开文档页面时看到的第一句话。我还记得我第一次发现 Keras 的时候。那时候我正在柏林解决 Data Science Retreat 的最后一个项目,为此我努力进入了深度学习库的世界。我在起步时就已经有了足够的深度学习知识,但我没有时间自己手动编写功能,也没有时间探索和学习一个新的库(截止时间不到 2 个月,而我还有课要上)。然后我发现了 Keras。

我真的很喜欢 Keras,因为它的句法是相当明晰的,它的文档也非常好(尽管相对较新),而且它支持我已经掌握的语言 Python。它的使用非常简单轻松;我们也能很直观地了解它的指

鐏忓嫰顣舵稉鎾茬瑹閸╃顔勯弫娆戔柤閹恒劏宕�

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top