AutoKeras

来源:http://nooverfit.com/wp/autokeras%EF%BC%9A%E5%BC%80%E6%BA%90automl%E5%88%9D%E4%BD%93%E9%AA%8C%EF%BC%8C%E8%87%AA%E5%8A%A8%E6%90%9C%E7%B4%A2%E5%92%8C%E6%9E%84%E5%BB%BA%E6%9C%80%E4%BC%98%E6%B7%B1%E5%BA%A6%E6%A8%A1%E5%9E%8B/

自动搜索构建深度学习模型和调参一直是数据科学家们向往的工具,而我们知道Google AI发布的AutoML是要收费的,如果想要开源的而且想要对AutoML背后技术一探究竟的,可以看看这款AutoKeras

AutoKeras开发处于初期阶段,它基于Keras(也有pytorch),而keras我们知道是基于TensorFlow,所以GPU利用可以不用担心(只要你安装了gpu版TensorFlow即可)。由于Keras代码极其简洁,autokeras上手也较容易 。

所以直接上autokeras版mnist训练代码:

  1. from keras.datasets import mnist
  2. from autokeras.image_classifier import ImageClassifier
  3.  
  4. if __name__ == '__main__':
  5. (x_train, y_train), (x_test, y_test) = mnist.load_data()
  6. x_train = x_train.reshape(x_train.shape + (1,))
  7. x_test = x_test.reshape(x_test.shape + (1,))
  8.  
  9. clf = ImageClassifier(verbose=True, augment=False)
  10. clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
  11. clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
  12. y = clf.evaluate(x_test, y_test)
  13. print(y * 100)

这里有几个要点,第一,代码需要在python3.6上跑否则会有兼容性问题(目前autokeras只支持python3.6),第二,如果不做特殊设置,autokeras会占满的你GPU或CPU:

所以训练前最好先选一个配置稍高的机子。

为什么会这么耗资源?其实底层autokeras用的技术正是类似传统机器学习的网格搜索和贝叶斯搜索

你也许还不知道的是,这个和搜索马航失联飞机的技术也是想通的:

这一类搜索的本质是,在搜索的同时,会有反馈数据。在你搜索更好的深度学习模型时,你会做一些假设(模型加入更多“跳层连接”可能会更好),这时算法会加入一些“跳层连接”去训练,并验证假设,再进行下一步搜索 (这正是耗计算资源的原因)。

当然autokeras还有许多可以改进的地方,比如对上述贝叶斯搜索的改进,以及支持除了卷积网络以外的RNN等其他结构的搜索功能等等。期待autokeras能有较快的跟进,github源码读者可以在参考文献中找到。

欢迎和David 9 互动讨论,联系方式你懂得,在文末扫二维码。

 

参考文献:

  1. https://github.com/jhfjhfj1/autokeras
  2. https://autokeras.com/
  3. https://towardsdatascience.com/auto-keras-or-how-you-can-create-a-deep-learning-model-in-4-lines-of-code-b2ba448ccf5e
  4. https://www.quora.com/What-is-the-probability-to-find-Malaysia-Airlines-MH370-using-Bayesian-search-theory
  5. http://soubhikbarari.github.io/blog/2016/09/14/overview-of-bayesian-optimization
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值