Keras 后端2025 年 3 月 17 日 | 阅读 26 分钟 Keras 是一个模型级库,提供高级构建块,可用于开发深度学习模型。它不直接支持张量乘积、卷积等低级操作,而是依赖于专门优化张量操作的后端引擎。它不会只选择一个张量库来实现 Keras 并将其绑定到该特定库。它通过无缝地将许多不同的后端引擎插入 Keras 来模块化地处理这种情况。 以下是三种可用的后端实现:
从一个后端切换到另一个后端你可能会在以下位置找到 Keras 配置文件: $HOME/.keras/keras.json 如果你在那里找不到它,那么你可以创建一个! 注意:特别是对于 Windows 用户,你必须将 $HOME 替换为 %USERPROFILE%。以下是默认配置: 在这里,你只需将 backend 字段更改为 "theano"、"tensorflow" 或 "cntk",然后当你运行任何 Keras 代码时,Keras 将使用修改后的配置。 一旦你定义了 KERAS_BACKEND 环境变量,它将覆盖你的配置文件中定义的所有内容。 你可以在 Keras 中加载比 "tensorflow"、"theano" 或 "cntk" 更多的后端,因为它很容易使用外部后端。这可以通过更改 keras.json 和 "backend" 设置来完成。假设你有一个名为 my_module 的 Python 模块作为外部后端使用;那么,在这种情况下,keras.json 文件可能会发生一些变化,如下所示: 为了使用外部后端,它必须经过验证并包含像 placeholder、variable 和 function 这样的函数。 如果外部后端无效,则可能会生成包含所有缺失条目的错误。 keras.json 详细信息以下是 keras.json 文件中包含的设置: 可以通过编辑 $HOME/.keras/keras.json 来简单修改设置。
使用抽象 Keras 后端编写新代码借助抽象 Keras 后端 API,你可以使你编写的 Keras 模块与 Theano (th) 和 TensorFlow (tf) 兼容。以下是对此的介绍: 后端模块可以通过以下方式导入: 以下代码将实例化一个输入占位符,它等同于 tf.placeholder() 或 th.tensor.matrix(), th.tensor.tensor3() 等。 通过合并以下代码将实例化一个变量,它反过来等同于 tf.Variable() 或 th.shared()。 你可能需要的大多数张量操作将以与你在 TensorFlow 或 Theano 中相同的方式执行,如下所示: 后端函数backend backend 函数用于返回当前后端名称。 返回值 它返回一个与正在使用的后端当前名称相关的字符串。 示例 symbolic 它可以定义为一个装饰器,在 TensorFlow 2.0 中用于进入 Keras 图。 参数
返回值 它返回一个装饰函数。 eager 它可以定义为一个装饰器,在 TensorFlow 2.0 中用于退出 Keras 图。 参数
返回值 它返回一个装饰函数。 get_uid 它提供了一个唯一的 UID,给出字符串前缀。 参数
返回值 此后端函数返回一个整数。 示例 此函数用于设置手动变量初始化标志。该标志是一个布尔值,用于控制变量是否初始化,或者用户必须处理初始化,因为它们默认是自实例化的。 参数
epsilon 它用于返回数值表达式中使用的模糊因子值。 返回值 它返回一个浮点数。 示例 reset_uids 它用于重置图标识符。 epsilon 它输出数值表达式中使用的模糊因子值。 返回值 它返回一个浮点值。 示例 set_epsilon 它用于设置数值表达式中使用的模糊因子值。 参数 e: 它可以定义为一个浮点值,表示 epsilon 的新值。 示例 floatx 它用于输出浮点类型字符串,例如 'float16'、'float32'、'float64'。 返回值 它返回当前默认浮点类型字符串。 示例 set_floatx 它用于设置默认浮点类型值。 参数
示例 引发
cast_to_floatx 它用于将 Numpy 数组转换为默认的 Keras 浮点类型。 参数
返回值 它返回被转换为新类型的相同 Numpy 数组。 示例 image_data_format 它用于返回默认图像数据格式约定。 返回值 它返回字符串 'channels_first' 或 'channels_last' 示例 set_image_data_format 此函数用于设置数据格式约定值。 参数
示例 引发
learning_phase 它输出学习阶段的标志,它指的是布尔张量(0 = 测试,1 = 训练),作为输入传递给任何 Keras 函数,该函数在训练和测试时使用不同的行为。 返回值 它返回学习阶段的标量整数张量或 Python 整数。 set_learning_phase 它用于将固定值设置为学习阶段。 参数
引发
clear_session 它用于重置 Keras 生成的每个状态。用于实现函数式模型构建 API 以及使自动生成的层名唯一的全局状态由 Keras 处理。 当在循环中构建多个模型时,全局状态将在一定时间段内消耗越来越多的内存,你希望清除它。 它用于销毁当前的 Keras 图并创建一个新的图。它非常有用,因为它避免了旧模型/层的混乱。 示例 1:在循环中创建模型时调用 clear_session()。 示例 2:重置层名生成计数器。 is_sparse 它用于返回张量是否是稀疏张量。 参数
返回值 它返回一个布尔值。 示例 to_dense 它用于将稀疏张量转换为密集张量并返回它。 参数
返回值 它返回一个密集张量。 示例 variable (变量) 它有助于实例化变量并返回它。 参数
返回值 它返回包含 Keras 元数据的变量实例。 示例 is_variable 常数 它导致创建唯一的张量。 参数
返回值 它还返回一个唯一的张量。 is_keras_tensor 它输出 x 是否是 Keras 张量。 "Keras 张量" 是由 Keras 层 (Layer 类) 或 Input 返回的张量。 参数
返回值 它返回一个布尔值,表示参数是否是 Keras 张量。 引发 如果 x 不是符号张量,则会引发 ValueError。 示例 is_tensor placeholder 它有助于实例化占位符张量并返回它。 参数
返回值 它返回包含 Keras 元数据的张量实例。 示例 is_placeholder 它返回 x 是否是占位符。 参数
返回值 它返回一个布尔值。 shape 它输出张量或变量的符号形状。 参数
返回值 它返回符号形状的张量。 示例 int_shape 它可以定义为整数元组或 None 条目,输出张量或变量的形状。 参数
返回值 它返回整数元组或 None 条目。 示例 Numpy 实现 ndim 它指的是一个整数,作为张量中的轴数返回。 参数
返回值 它输出轴的数量作为整数值。 示例 Numpy 实现 大小 它输出张量大小。 参数
返回值 它返回张量的大小。 示例 dtype 它可以定义为字符串,作为 Keras 张量或变量的数据类型返回。 参数
返回值 对于 x,它返回其数据类型。 示例 Numpy 实现 eval 它有助于评估张量值。 参数
返回值 它输出一个 Numpy 数组。 示例 Numpy 实现 zeros 它有助于实例化所有零的变量,然后返回它。 参数
返回值 它返回一个包含 Keras 元数据的变量,该变量填充为 0.0。需要注意的是,如果它是符号 n 形状,则不能返回变量,而是返回动态形状的张量。 示例 Numpy 实现 ones 它有助于实例化一个全为一的变量,然后返回它。 参数
返回值 它返回一个 Keras 变量,填充为 0.0。需要注意的是,如果它是符号 n 形状,则不能返回变量,而是返回动态形状的张量。 示例 Numpy 实现 eye 它有助于实例化一个单位矩阵,然后返回它。 参数
返回值 它输出表示单位矩阵的 Keras 变量。 示例 Numpy 实现 zeros_like 它有助于实例化与另一个张量具有相同形状的全部为零的变量。 参数
返回值 它返回一个 Keras 变量,填充为所有零,构成 x 的形状。 示例 Numpy 实现 ones_like 它有助于实例化与另一个张量具有相同形状的全部为一的变量。 参数
返回值 它返回一个 Keras 变量,填充为所有零,构成 x 的形状。 示例 Numpy 实现 identity (标识) 它输出一个张量,其内容与输入张量相同。 参数
返回值 它返回一个具有相同形状、类型和内容的张量。 random_uniform_variable 它强调实例化一个变量,其值从均匀分布中抽取。 参数
返回值 它输出一个 Keras 变量,该变量已填充了抽取样本。 示例 Numpy 实现 random_normal_variable 它有助于实例化一个变量,其值从正态分布中抽取。 参数
返回值 它输出一个 Keras 变量,该变量已填充了抽取样本。 示例 Numpy 实现 count_params 它输出 Keras 变量或张量中存在的常量组件数量。 参数
返回值 它产生一个整数,表示 x 中存在的元素总数,即数组静态维度的乘积。 示例 Numpy 实现 cast 它有助于将张量转换为不同的数据类型,然后返回它。如果,如果你转换 Keras 变量,它也将产生 Keras 张量。 参数
返回值 它输出一个数据类型为 dtype 的 Keras 张量。 示例 update(更新) 它有助于将 x 的值更新为 new_x。 参数
返回值 它产生更新后的 x 变量。 update_add 它添加一个 增量,有助于更新 x 的值。 参数
返回值 它返回更新后的 x 变量。 update_sub 它减去递减量以更新 x 的值。 参数
返回值 它返回更新后的 x 变量。 moving_average_update 对于变量,它计算其移动平均值。 参数
返回值 它输出用于更新变量的操作。 dot 它通过乘以 2 个张量或变量来返回一个张量。 在将 nD 张量乘以另一个 nD 张量时,会重现 Theano 行为。(例如 (2, 3) * (4, 3, 5) -> (2, 4, 5)) 参数
返回值 它返回在 x 和 y 之间进行点积后生成的张量。 示例 Numpy 实现 batch_dot batch_dot 有助于计算 x 和 y 之间的批处理点积,其中 x 和 y 是批处理中的数据(即形状为 (batch_size, :))。它输出一个维度少于输入的张量或变量。如果我们将维度数量减少到 1,那么我们可以使用 expand_dims,它确保 ndim 至少为 2。 参数
返回值 它返回一个张量,其形状与 x 的形状和 y 的形状的拼接相同 ()。这里 x 的形状与求和的维度较少,y 表示批处理维度和求和的维度较少。但是,如果最终秩为 1,则将其重塑为 (batch_size, 1)。 示例 假设 x = [[1, 2], [3, 4]] 和 y = [[5, 6], [7, 8]] batch_dot(x, y, axes=1) = [[17], [53]],这是 x.dot(y.T) 的主对角线,尽管我们从不需要计算非对角线元素。 伪代码 形状推断:设 x 的形状为 (100, 20),y 的形状为 (100, 30, 20)。如果 axes 为 (1, 2),为了找到结果张量的输出形状,遍历 x 的形状和 y 的形状中的每个维度:
transpose 它用于转置张量,然后返回它。 参数
返回值 它返回一个张量。 示例 Numpy 实现 gather 它有助于在张量 reference 中检索索引 indices 元素。 参数
返回值 它输出一个与 reference 类型相同的张量。 Numpy 实现 max 它计算张量的最大值。 参数
返回值 它返回一个表示 x 最大值的张量。 Numpy 实现 min 它计算张量中的最小值。 参数
返回值 它返回一个表示 x 最小值的张量。 Numpy 实现 sum 它输出张量中指定轴上的值总和。 参数
返回值 它返回一个包含 x 总和的张量。 Numpy 实现 prod 结合特定轴,它计算张量中值的乘积。 参数
返回值 它返回一个包含 x 中元素乘积的张量。 Numpy 实现 cumsum 结合特定轴,它计算张量中值的累积和。 参数
返回值 它返回一个包含 x 沿 轴 值的累积和的张量。 Numpy 实现 cumprod 结合特定轴,它计算张量中值的累积乘积。 参数
返回值 它返回一个包含 x 沿 轴 值的累积乘积的张量。 Numpy 实现 var 结合特定轴,它计算张量的方差。 参数
返回值 它返回 x 中元素张量的方差。 Numpy 实现 rnn 它有助于在张量维度上方重复。 参数
返回值 它输出形状为 (样本, output_dim) 的张量。
返回值 它返回形状为 (last_output, outputs, new_states) 的元组,其中 last_output 指的是 rnn 最新的输出,形状为 (样本, ...),outputs 指的是形状为 (样本, 时间, ...) 的张量,使得每个条目 outputs[s, t] 对应于样本 s 和时间 t 的步函数输出,而 new_states 可以定义为张量列表,表示最新的状态,这些状态由形状为 (样本, ...) 的步函数返回。 引发
下一主题Keras 模型 |
我们请求您订阅我们的新闻通讯以获取最新更新。