首页 > 解决方案 > keras-tuner 抛出 AttributeError:“HyperParameters”对象没有属性“shape”

问题描述

我一直在尝试将 Keras Tuner 用于我的同事构建的 Keras 模型(抱歉,我是 pytorch 用户),当我将 Keras Tuner 应用于这个模型时,我得到了AttributeError: 'HyperParameters' object has no attribute 'shape'

def my_function(hp, input_size: int, dense_spec: dict):
    inp = tf.keras.layers.Input((input_size,))
    x = inp
    for units_val in dense_spec:
        x = tf.keras.layers.Dense(units=hp.Int('units_' + str(units_val), min_value=16, max_value=units_val, step=16, default=units_val), activation="relu") (x)

    x = tf.keras.layers.Lambda(
    lambda tensor: K.l2_normalize(tensor, axis=1), name="vector"
)(x)

model0 = tf.keras.models.Model(inp, x, name="model0")
return model0

标签: keraskeras-tuner

解决方案


我怀疑这是答案,但在你的线上......

    for units_val in dense_spec:
        x = tf.keras.layers.Dense(units=hp.Int('units_' + str(units_val), min_value=16, max_value=units_val, step=16, default=units_val), activation="relu") (x)

(x)在行尾之前有一个额外的空格。

IE

You Have >>> ...activation="relu") (x)
You Want >>> ...activation="relu")(x)

推荐阅读