本篇文章3131字,读完约8分钟
本文是首次在微信公共平台上发表:新智元。 文案是作者个人的观点,不代表网络的角度。 投资者据此,风险请自己承担。
新智元编译源: quora编译:费欣欣,常佩琦
【新智元领先】名为“tensorflow sucks”的复制成功了。 不到两年就成为了github最受欢迎的深度学习项目。 谷歌开源深度的学习框架tensorflow既有人喜欢它,也有人不喜欢它。 这篇文摘是研究者和开发者选择了使用tf的心情。 tensorflow这么难用吗? 留下评论,欢迎分享你的录用经验。
最近,网上出现了一个名为“tensorflow sucks”的副本。 作者吐槽了谷歌开源机器学习框架tensorflow的各种缺点。 首先,我认为tensorflow缺乏灵活性,难以在设计思想和采用上迅速部署原型,相关库太高级,不容易采用。 这个拷贝的作者以pytorch和caffe为对象,后者被认为比tf在一些代码和调用方面非常优秀。
“谷歌打算开发全员都可以使用的工具,但这个产品似乎并不令人满意。 ”。
这个文案公布后,引起了很大的反方向。 部分原因当然是tensorflow的巨大客户基础。 quora也有相关的讨论。 接下来的新智元做了摘译。
tensorflow是高级但给人低级感觉的框架
以下是quora客户、来自挪威的数据科学家h kon hapnes strand的回答。
我觉得这个复印件很有兴趣。 大部分复印件都和我自己采用tensorflow的经验一致。
我完全同意作者关于tensorflow缺点的第一个见解。 这是一个高级但给人粗俗感觉的框架。 理想情况下,我想快速部署原型( rapid prototyping ),控制精细粒度。 但是,一般来说两者是不能兼顾的。 在tensorflow中你得不到两者。
所以tf只能采用keras这样的api。 但是,如果客户必须走调用api的道路,它本身就证明了框架有问题。
tensorflow静态图计算模型的主要卖点是性能,但各种标准表示,其他框架更简单地保持语法,实现了与tensorflow同等的效果。
很明显,大家对谷歌的狂热喜好带来了tensorflow的流行。 我认为我有一些好的深度学习框架。 比如cntk不比tensorflow差。 但是,由于企业品牌名称不太大,所以没有tensorflow那么流行。 大多数研究者认为谷歌所做的一切都是创新和令人兴奋的。 另外,从市场营销的角度来看,“cntk”的名字是不够的,“tensorflow”很吸引人。
极端重点图是最大的优点,也是最大的劣势
以下是客户bohdan khomtchouk的回答。 khomtchouk在斯坦福大学的博士课程之后。
我认为tensorflow极端侧重于图( graph )是最大的特点,但最大的弱点。
特征是系统可以支持很多优化,也是部署到生产环境的理想选择(因为没有语言的运行时间,所以图)。 。 这些事件对谷歌来说非常重要,最终对大部分产业级顾客来说也非常重要。 我觉得这个总体上很好。
缺点来自工作时的违和感——你不是在写程序,而是定义了图。 对此,有两个应对措施。
1 )
采用了keras和tf estimators等更高级的宣言式api。 实际上很多人都想这样采用tensorflow,所以是个好方法。 我相信tf团队很快就会开始宣传这些框架作为新客户获得tf的工具。
2 )
tensorflow eager mode。 这给tensorflow带来了必要的渐进式运算语义和动态映射。 这还没有很多细节,什么是github ( github/tensor flow/tensor flow/tensor flow/tree/master/tensor flow/python/eager )和stackoverflow(tenor ) 我认为这是为了向研究者(动态图)和学习者(可以编写越来越多的命令式程序)提供越来越多的pytorch环境而开发的。
我认为这些响应非常有效,tensorflow将继续保持深度学习选择框架/基础架构的地位。
抛弃tensorflow,过上好的生活
客户,以下是inria研究人员ujjwal的回答。
老实说,我同意文案作者的大部分意见。 他没有洞来风,其实击中要害。 作为研究者,我完全理解他的经验。
我在tensorflow上花了很多时间做很多杂七杂八的工作( heavy stuff )。 不是吹牛,真是很多繁杂的工作,这也是深入学习处理方案的真正尝试。
采用名为cifar10、cifar100或mnist的数据集,可以在任何深度的学习库中发挥惊人的效果。 但是你在实际环境中面临的问题有更多。
实际场景非常重要,在研究时特别重要。 我们希望很快就会有结果,有很高的灵活性。 如果库的灵活性不足,就不是好库。 这么简单。
我不喜欢tensorflowd的理由如下。
没有好的输入通道: tensorflow的1.4预览版中还只有一点好的输入通道。 dataset api现在支持预捕获。 这有助于在训练和推理时提高gpu的流量。 但是,这也同样容易使系统进入锁定状态。 另外,tf没有显示比较有效的输入通道的文档和样本。
糟糕的社区:我需要用tensorflow做点案子。 但是看了文件也不能理解或者处理不了,所以决定去github。 但是打开“new issue”首先可以看到很多证书。 确实,这里只听到“与开发相关”的问题。 其他query应该使用堆栈溢出。 我们是开源的好客户,所以老实去了stackoverflow,发了很深的帖子。 但是,等等,等等,等等,没有答案。 这样的事件已经发生了几十次了。 如果你在github上发了issue,别忘了有人来关掉你的帖子,亲切地提醒你。 这个问题适用于堆栈溢出。 ……我在那里问了一个很深的问题,没有任何反应。
粗糙的招聘:我不打算说谁,但我在现实生活中真正遇到很多人是对tensorflow的爱不止的人。 但是,每次我问他们一个有点深的问题,他们都给我看了cifar10 /mnist代码。 这就是我说的“粗糙的招聘”( shallow usage )。 这是危险的趋势。 tensorflow教程的一切都很棒。 但是,相信我,从大规模应用的角度来看,一个也不好。
迷弟泛滥:这个原因最愚蠢,没有人承认。 但是很多人听说tensorflow很兴奋。 因为名字上有“谷歌”。 这不太容易理解,但这是事实。 谷歌利用了这个愚蠢的特征。
没有良好的保存和重用方法:使用四个gpu训练模型,使用s aver.save ( )保存模型时,. meta文件保存每个gpu对应的图。 如果你的朋友需要用这个模型马上测试,他必须是知道内部细节的专家(观察,未确定的文件),他才能使用。 我再次强调,这些东西只有在你真的去录用的时候才能体会到。 使用一个gpu或所有gpu看起来都很好,可能永远观察不到这个严重的缺陷。
我还会说很多,但我真的不想打字。
有计算机科学基础知识的人知道静态图表的效率。 但是,我不擅长和认为静态图是灵活易用的做法的人讨论。 动态图表非常重要,因为它提供了更高的灵活性,灵活性对研究很重要。
不要告诉我api的变更。 在安装每个新版本之前,我想我以前的代码来不及了。
我不再用tensorflow了。 将来也不碰。 我的日子现在好多了。
原文1链接: quora/what-do-people-think-of-the-tensor flow-sucks-article
复制源:微信公共平台新智元
标题:“【我不再采用TensorFlow的5大原因】谷歌最受欢迎深度学习框架日渐取代?”
地址:http://www.china-huali.com/cjxw/45764.html