0

I am getting an error, I am not sure why. I have already tried this solution but it wasn't successful.

Code:

my_model = tf.keras.Sequential()([
        tf.keras.layers.Conv2D(16, kernel_size=(3, 3),
                      activation='relu'),
        tf.keras.layers.Conv2D(32, (3, 3), activation='relu', kernel_regularizer=tf.keras.regularizers.l2(0.01),
                               bias_regularizer=tf.keras.regularizers.l1(0.01)),
        tf.keras.layers.BatchNormalization(),
        tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
        tf.keras.layers.Dropout(0.25),
        tf.keras.layers.Flatten(),
        tf.keras.layers.Dense(64, activation='relu'),
        tf.keras.layers.Dropout(0.5),
        tf.keras.layers.Dense(num_classes, activation='softmax')
    ])
    # Horovod: adjust learning rate based on number of GPUs.
    scaled_lr = 0.00001 * hvd.size()
    opt = tf.keras.optimizers.Adam(scaled_lr)
    # opt = tf.keras.optimizers.Adam(0.00001 * hvd.size())
    # Horovod: add Horovod DistributedOptimizer.
    opt = hvd.DistributedOptimizer(
        opt, backward_passes_per_step=1, average_aggregated_gradients=True)

    # Horovod: Specify `ex  perimental_run_tf_function=False` to ensure TensorFlow
    # uses hvd.DistributedOptimizer() to compute gradients.
    my_model.compile(loss=tf.losses.SparseCategoricalCrossentropy(),
                      optimizer=opt,
                      metrics=['accuracy'],
                      experimental_run_tf_function=False)

Error:

my_model.compile(loss=tf.losses.SparseCategoricalCrossentropy(),
AttributeError: 'list' object has no attribute 'compile'
1
  • 3
    Replace tf.keras.Sequential() with tf.keras.Sequential. Commented Sep 3, 2022 at 12:27

1 Answer 1

1

the problem is in the the first line of your code, you need to define the list of layers inside the Sequential as following :

my_model = tf.keras.Sequential([
        tf.keras.layers.Conv2D(16, kernel_size=(3, 3),
                      activation='relu'),
        tf.keras.layers.Conv2D(32, (3, 3), activation='relu', kernel_regularizer=tf.keras.regularizers.l2(0.01),
                               bias_regularizer=tf.keras.regularizers.l1(0.01)),
        tf.keras.layers.BatchNormalization(),
        tf.keras.layers.MaxPooling2D(pool_size=(2, 2)),
        tf.keras.layers.Dropout(0.25),
        tf.keras.layers.Flatten(),
        tf.keras.layers.Dense(64, activation='relu'),
        tf.keras.layers.Dropout(0.5),
        tf.keras.layers.Dense(10, activation='softmax')
    ])
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.