基于keras中import keras.backend as K的含义说明

基于keras中import keras.backend as K的含义说明

原理介绍

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"

以上为个人经验,希望能给大家一个参考,也希望大家多多支持云海天教程。