原理介绍
keras是一种基于模块的高级深度学习开发框架,它并没有仅依赖于某一种高速底层张量库,而是对各种底层张量库进行高层模块封装,让底层库完成诸如张量积、卷积操作。
目前,Keras提供了三种后端实现:TensorFlow后端,Theano后端和CNTK后端。
TensorFlow是Google开发的开源符号张量操纵框架。
Theano是由蒙特利尔大学的LISA Lab开发的开源符号张量操纵框架。
CNTK是由Microsoft开发的用于深度学习的开源工具包。
含义
即可以使用抽象的Keras后端编写新代码。
下面的代码实例化输入占位符。它等同于tf.placeholder()或th.tensor.matrix(),th.tensor.tensor3()等等。
inputs = K.placeholder(shape=(2, 4, 5)) # also works: inputs = K.placeholder(shape=(None, 4, 5)) # also works: inputs = K.placeholder(ndim=3)
补充:keras, from keras import backend as K 报错
如果遇到from keras import backend as K 报错情况,可能是因为keras.json文件里“backend”未设置成mxnet 或者 tensorflow等。
解决方案:
1、修改Backend:找到这个文件~/.keras/keras.json
其次将其中backend后面的框架修改成mxnet或者tensorflow。
cd ~/.keras vim keras.json #---------------------- { # keras.json文件内容 "image_dim_ordering": "tf", "epsilon": 1e-07, "floatx": "float32", "backend": "theano" }
如果方案1无法解决问题,则可以尝试方案2.
2、在python代码中import keras前加入一个环境变量修改的语句
import os os.environ['KERAS_BACKEND']='tensorflow'
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。