Tensorflow._api.v2.train has no attribute 'AdamOptimizer'

When using

model.compile(optimizer = tf.train.AdamOptimizer(),
              loss = 'sparse_categorical_crossentropy',
              metrics=['accuracy'])

in my Jupyter Notebook the following Error pops up:

module 'tensorflow._api.v2.train' has no attribute 'AdamOptimizer'

Tensorflow Version: 2.0.0-alpha0


Do you think the only possibility is to downgrade the TF version?


Solution 1:

tf.train.AdamOptimizer() => tf.optimizers.Adam()

From https://www.tensorflow.org/versions/r2.0/api_docs/python/tf/optimizers

Solution 2:

model.compile(optimizer = tf.keras.optimizers.Adam(),
              loss = 'sparse_categorical_crossentropy',
              metrics=['accuracy'])

Solution 3:

I haven't tried 2.0 yet, but from what I've seen on the dev submit videos, you can use

model.compile(optimizer = 'adam',
           loss = 'sparse_categorical_crossentropy',
           metrics=['accuracy'])

Solution 4:

tf.optimizers.Adam()

Is the way to go. No reason to downgrade.
There are lots of changes in tf 2.0 compared to 1.14.
Note that the parameter-names of Adam have changed, too. e.g. beta1 is now beta_1, check the documentation in Meixu Songs link.