切换视频源:

兼容 backend

作者: 刘思成 编辑: rcdrones 2016-10-29

学习资料:

我们来介绍 Keras 的两个 Backend,也就是Keras基于什么东西来做运算。Keras 可以基于两个Backend,一个是 Theano,一个是 Tensorflow。如果我们选择Theano作为Keras的Backend, 那么Keras就用 Theano 在底层搭建你需要的神经网络;同样,如果选择 Tensorflow 的话呢,Keras 就使用 Tensorflow 在底层搭建神经网络。

目前 Tensorflow 支持 Mac 和 Linux 系统,而 Theano 不但支持包括 Mac 和 Linux,还支持 Windows 系统, 所以我们就可以选择自己可以用的 Backend 就可以。

如何看当前使用的是什么Backend

每次当我们import keras的时候,就会看到屏幕显示当前使用的 Backend

import keras
Using Theano Backend

这就说明现在使用的是Theano在作Backend。

如何修改Backend

~/.keras/keras.json

文件内容:

{
	"image_dim_ordering": "tf",
	"epsilon": 1e-07,
	"floatx": "float32",
	"backend": "theano"
}

每次import的时候,keras 就会检查这个 keras.json 文件。一般我们以为,如果需要把 Backend 改成 Tensorflow 的话,只需要改动最后一行”backend”对应的值,修改后的文件内容:

{
	"image_dim_ordering": "tf",
	"epsilon": 1e-07,
	"floatx": "float32",
	"backend": "tensorflow"
}

但这样修改后,import 的时候会出现错误信息。

解决的方法有几种:

  • 可以在其他文本编辑器内编辑好这段文本,然后整体拷贝到这个文件里。
  • 还可以在terminal中直接输入临时环境变量执行
# python2+输入:
KERAS_BACKEND=tensorflow python -c "from keras import backend"
# python3+输入:
KERAS_BACKEND=tensorflow python3 -c "from keras import backend"
  • 最好的解决方法,还是在python代码中import keras前加入一个环境变量修改的语句:
import os
os.environ['KERAS_BACKEND']='theano'

这时import keras就会显示Using Theano backend

如果语句改为:

import os
os.environ['KERAS_BACKEND']='tensorflow'

这时import keras就会显示Using Tensorflow backend。 第三种修改影响的范围是仅这个脚本内,所以其他文件的执行Keras还是会去找keras.json配置文件来确定用什么backend

分享到: Facebook 微博 微信 Twitter
如果你觉得这篇文章或视频对你的学习很有帮助, 请你也分享它, 让它能再次帮助到更多的需要学习的人. 莫烦没有正式的经济来源, 如果你也想支持 莫烦Python 并看到更好的教学内容, 赞助他一点点, 作为鼓励他继续开源的动力.

支持 让教学变得更优秀