DeepCTR icon indicating copy to clipboard operation
DeepCTR copied to clipboard

ValueError: Could not interpret optimizer identifier: <keras.optimizers.optimizer_v2.adam.Adam object at 0x7fbe77391a00>

Open ChildishChange opened this issue 2 years ago • 4 comments

Describe the bug(问题描述) get a valueError when running deepfm demo

To Reproduce(复现步骤)

# fail and get ValueError: Could not interpret optimizer identifier: <keras.optimizers.optimizer_v2.adam.Adam object at 0x7fbe77391a00>
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=learning_rate),
                loss="binary_crossentropy",
                metrics=['accuracy','binary_crossentropy', tf.keras.metrics.AUC(curve='ROC')])

# success
model.compile("adam", "binary_crossentropy",
                metrics=['accuracy','binary_crossentropy',tf.keras.metrics.AUC(curve='ROC')], )

Operating environment(运行环境):

  • python version [3.8]
  • tensorflow version [2.9.1]
  • deepctr version [0.9.1]

Additional context

solution may be: https://stackoverflow.com/questions/70658010/could-not-interpret-optimizer-identifier-formatidentifier

ChildishChange avatar Aug 03 '22 08:08 ChildishChange

try this: https://deepctr-doc.readthedocs.io/en/latest/FAQ.html#set-learning-rate-and-use-earlystopping

zanshuxun avatar Aug 04 '22 03:08 zanshuxun

try this: https://deepctr-doc.readthedocs.io/en/latest/FAQ.html#set-learning-rate-and-use-earlystopping

also failed, XP

# ImportError: cannot import name 'Adam' from 'tensorflow.python.keras.optimizers' (/root/miniconda3/envs/py3_tf2/lib/python3.8/site-packages/tensorflow/python/keras/optimizers.py)
from tensorflow.python.keras.optimizers import Adam,Adagrad

ChildishChange avatar Aug 04 '22 06:08 ChildishChange

Tensorflow 2.10.0版本

from tensorflow.python.keras.optimizers import adam_v2
adam=adam_v2.Adam()
print(adam)
print(adam.get_config())
# <tensorflow.python.keras.optimizer_v2.adam.Adam object at 0x1011329d0>
# {'name': 'Adam', 'learning_rate': 0.001, 'decay': 0.0, 'beta_1': 0.9, 'beta_2': 0.999, 'epsilon': 1e-07, 'amsgrad': False}

from tensorflow.python.keras.optimizers import Adam
adam_old=Adam()
print(adam_old)#ImportError: cannot import name 'Adam' from 'tensorflow.python.keras.optimizers'
print(adam_old.get_config())

includeno avatar Feb 16 '23 12:02 includeno

model.compile(optimizer='adam', loss=tf.keras.losses.BinaryCrossentropy(), metrics=metrics) This works for me

chentao169 avatar Aug 21 '23 22:08 chentao169