基于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'

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 查看keras的默认backend实现方式

    1 . 进入当前用户目录: cd ~ 2 . 查看当前目录下的文件: ls -a 3 . 找到.keras目录并进入: cd .keras 4 . 进入并查看keras.json文件: cat keras.json 5 . 可能的显示如下: {"image_dim_ordering":"tf", "epsilon": 1e-07, "floatx": "float32", "backend&quo

  • 浅谈keras中的后端backend及其相关函数(K.prod,K.cast)

    一.K.prod prod keras.backend.prod(x, axis=None, keepdims=False) 功能:在某一指定轴,计算张量中的值的乘积. 参数 x: 张量或变量. axis: 一个整数需要计算乘积的轴. keepdims: 布尔值,是否保留原尺寸. 如果 keepdims 为 False,则张量的秩减 1. 如果 keepdims 为 True,缩小的维度保留为长度 1. 返回 x 的元素的乘积的张量. Numpy 实现 def prod(x, axis=None

  • 浅谈keras 的抽象后端(from keras import backend as K)

    keras后端简介: Keras 是一个模型级库,为开发深度学习模型提供了高层次的构建模块.它不处理诸如张量乘积和卷积等底层操作,目的也就是尽量不重复造轮子. 但是底层操作还是需要的, 所以keras 依赖于一个专门的.优化的张量操作库来完成这个操作. 我们可以简单的认为这是 Keras 的「后端引擎」, keras 有三个后端实现可用 . 即: TensorFlow 后端,Theano 后端,CNTK 后端. 如果你需要修改你的后端, 只要将字段 backend 更改为 theano 或 cn

  • keras中的backend.clip用法

    如下所示: keras.backend.clip(x, min_value, max_value) 逐元素clip(将超出指定范围的数强制变为边界值) 参数 x: 张量或变量. min_value: Python 浮点或整数. max_value: Python 浮点或整数. 返回 一个张量. import tensorflow as tf from keras import backend a = tf.constant(2.1) #定义tensor常量 b = backend.clip(a,

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

    原理介绍 keras是一种基于模块的高级深度学习开发框架,它并没有仅依赖于某一种高速底层张量库,而是对各种底层张量库进行高层模块封装,让底层库完成诸如张量积.卷积操作. 目前,Keras提供了三种后端实现:TensorFlow后端,Theano后端和CNTK后端. TensorFlow是Google开发的开源符号张量操纵框架. Theano是由蒙特利尔大学的LISA Lab开发的开源符号张量操纵框架. CNTK是由Microsoft开发的用于深度学习的开源工具包. 含义 即可以使用抽象的Kera

  • 浅谈keras中的keras.utils.to_categorical用法

    如下所示: to_categorical(y, num_classes=None, dtype='float32') 将整型标签转为onehot.y为int数组,num_classes为标签类别总数,大于max(y)(标签从0开始的). 返回:如果num_classes=None,返回len(y) * [max(y)+1](维度,m*n表示m行n列矩阵,下同),否则为len(y) * num_classes.说出来显得复杂,请看下面实例. import keras ohl=keras.utils

  • 浅谈keras中的batch_dot,dot方法和TensorFlow的matmul

    概述 在使用keras中的keras.backend.batch_dot和tf.matmul实现功能其实是一样的智能矩阵乘法,比如A,B,C,D,E,F,G,H,I,J,K,L都是二维矩阵,中间点表示矩阵乘法,AG 表示矩阵A 和G 矩阵乘法(A 的列维度等于G 行维度),WX=Z import keras.backend as K import tensorflow as tf import numpy as np w = K.variable(np.random.randint(10,siz

  • 解决Keras中循环使用K.ctc_decode内存不释放的问题

    如下一段代码,在多次调用了K.ctc_decode时,会发现程序占用的内存会越来越高,执行速度越来越慢. data = generator(...) model = init_model(...) for i in range(NUM): x, y = next(data) _y = model.predict(x) shape = _y.shape input_length = np.ones(shape[0]) * shape[1] ctc_decode = K.ctc_decode(_y,

  • 基于keras中的回调函数用法说明

    keras训练 fit( self, x, y, batch_size=32, nb_epoch=10, verbose=1, callbacks=[], validation_split=0.0, validation_data=None, shuffle=True, class_weight=None, sample_weight=None ) 1. x:输入数据.如果模型只有一个输入,那么x的类型是numpy array,如果模型有多个输入,那么x的类型应当为list,list的元素是对应

  • 基于Keras中Conv1D和Conv2D的区别说明

    如有错误,欢迎斧正. 我的答案是,在Conv2D输入通道为1的情况下,二者是没有区别或者说是可以相互转化的.首先,二者调用的最后的代码都是后端代码(以TensorFlow为例,在tensorflow_backend.py里面可以找到): x = tf.nn.convolution( input=x, filter=kernel, dilation_rate=(dilation_rate,), strides=(strides,), padding=padding, data_format=tf_

  • 解读keras中的正则化(regularization)问题

    目录 keras中正则化(regularization) keras内置3种正则化方法 3个正则化关键字 keras中添加正则化 正则项 例子 可用正则项 开发新的正则项 总结 keras中正则化(regularization) keras内置3种正则化方法 keras.regularizers.l1(lambda) keras.regularizers.l2(lambda) keras.regularizers.l1_l2(l1=lambda1, l2=lambda2) 目前我的理解是lamb

随机推荐