当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python tf.keras.experimental.WideDeepModel用法及代码示例


用于回归和分类问题的 Wide & Deep 模型。

继承自:ModelLayerModule

用法

tf.keras.experimental.WideDeepModel(
    linear_model, dnn_model, activation=None, **kwargs
)

参数

  • linear_model 预制的 LinearModel,其输出必须与 dnn 模型的输出相匹配。
  • dnn_model a tf.keras.Model ,其输出必须与线性模型的输出相匹配。
  • activation 激活函数。将其设置为 None 以保持线性激活。
  • **kwargs 传递给 BaseLayer 的关键字参数。在里面.允许的关键字参数包括name.

属性

  • distribute_strategy 该模型是在 tf.distribute.Strategy 下创建的。
  • layers
  • metrics_names 返回所有输出的模型显示标签。

    注意:metrics_names 仅在 keras.Model 已根据实际数据进行训练/评估后可用。

    inputs = tf.keras.layers.Input(shape=(3,))
    outputs = tf.keras.layers.Dense(2)(inputs)
    model = tf.keras.models.Model(inputs=inputs, outputs=outputs)
    model.compile(optimizer="Adam", loss="mse", metrics=["mae"])
    model.metrics_names
    []
    x = np.random.random((2, 3))
    y = np.random.randint(0, 2, (2, 2))
    model.fit(x, y)
    model.metrics_names
    ['loss', 'mae']
    inputs = tf.keras.layers.Input(shape=(3,))
    d = tf.keras.layers.Dense(2, name='out')
    output_1 = d(inputs)
    output_2 = d(inputs)
    model = tf.keras.models.Model(
       inputs=inputs, outputs=[output_1, output_2])
    model.compile(optimizer="Adam", loss="mse", metrics=["mae", "acc"])
    model.fit(x, (y, y))
    model.metrics_names
    ['loss', 'out_loss', 'out_1_loss', 'out_mae', 'out_acc', 'out_1_mae',
    'out_1_acc']
  • run_eagerly 指示模型是否应立即运行的可设置属性。

    即刻地运行意味着您的模型将像 Python 代码一样逐步运行。您的模型可能会运行得更慢,但通过单步调用各个层调用,您应该可以更轻松地对其进行调试。

    默认情况下,我们将尝试将您的模型编译为静态图以提供最佳执行性能。

该模型联合训练了一个线性模型和一个 dnn 模型。

例子:

linear_model = LinearModel()
dnn_model = keras.Sequential([keras.layers.Dense(units=64),
                             keras.layers.Dense(units=1)])
combined_model = WideDeepModel(linear_model, dnn_model)
combined_model.compile(optimizer=['sgd', 'adam'], 'mse', ['mse'])
# define dnn_inputs and linear_inputs as separate numpy arrays or
# a single numpy array if dnn_inputs is same as linear_inputs.
combined_model.fit([linear_inputs, dnn_inputs], y, epochs)
# or define a single `tf.data.Dataset` that contains a single tensor or
# separate tensors for dnn_inputs and linear_inputs.
dataset = tf.data.Dataset.from_tensors(([linear_inputs, dnn_inputs], y))
combined_model.fit(dataset, epochs)

在联合训练之前,线性和 dnn 模型都可以单独进行预编译和训练:

例子:

linear_model = LinearModel()
linear_model.compile('adagrad', 'mse')
linear_model.fit(linear_inputs, y, epochs)
dnn_model = keras.Sequential([keras.layers.Dense(units=1)])
dnn_model.compile('rmsprop', 'mse')
dnn_model.fit(dnn_inputs, y, epochs)
combined_model = WideDeepModel(linear_model, dnn_model)
combined_model.compile(optimizer=['sgd', 'adam'], 'mse', ['mse'])
combined_model.fit([linear_inputs, dnn_inputs], y, epochs)

相关用法


注:本文由纯净天空筛选整理自tensorflow.org大神的英文原创作品 tf.keras.experimental.WideDeepModel。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。