tensorflow: ValueError: Could not interpret optimizer identifier (tf.keras)
System information
- Have I written custom code (as opposed to using a stock example script provided in TensorFlow): Yes
- OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Windows 10
- TensorFlow installed from (source or binary): binary
- TensorFlow version (use command below): 1.8.0
- Python version: 3.5
- Bazel version (if compiling from source):
- GCC/Compiler version (if compiling from source):
- CUDA/cuDNN version: 8.0/6.0
- GPU model and memory: Nvidia
- Exact command to reproduce: model.compile(optimizer=tf.keras.optimizers.Adadelta() …)
Describe the problem
Passing in keras optimizers into a tf.keras model causes a value error, unless they are passed as strings i.e. “Adadelta” instead of Adadelta( ). This prevents arguments from being passed to the optimizer. Please note that when the optimizer is imported from vanilla Keras i.e. keras.optimizers.Adadelta(rho=0.9) there is no such issue.
Source code / logs
`` import tensorflow as tf from tensorflow.python.keras.optimizers import Adadelta, Adam
model = deepshading.get_model()
model.compile(optimizer=tf.keras.optimizers.Adadelta(rho=0.9),
loss=DSSIMObjective(k1=0.0001, k2=0.001, kernel_size=8),
metrics=[DSSIMObjective(k1=0.0001, k2=0.001, kernel_size=8)])
``
Returns trace-back
identifier=identifier.__class__.__name__)) Traceback (most recent call last): File "C:/Users/isultan/PycharmProjects/deep-shading/run.py", line 69, in <module> train() File "C:/Users/isultan/PycharmProjects/deep-shading/run.py", line 35, in train metrics=[DSSIMObjective(k1=0.0001, k2=0.001, kernel_size=8)]) File "C:\Users\isultan\AppData\Local\Continuum\miniconda3\envs\tf\lib\site-packages\keras\engine\training.py", line 604, in compile self.optimizer = optimizers.get(optimizer) File "C:\Users\isultan\AppData\Local\Continuum\miniconda3\envs\tf\lib\site-packages\keras\optimizers.py", line 768, in get str(identifier)) ValueError: Could not interpret optimizer identifier: <tensorflow.python.keras._impl.keras.optimizers.Adadelta object at 0x000001E563508860>
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Comments: 15 (2 by maintainers)
Having the same issue with SGD optimizer, also tensorflow version 1.8.0
It works as soon as I do not provide any parameters to SGD (
Optimizer = tf.keras.optimizers.SGD())Thanks, I solved changing the import. Now I use
from tensorflow.python.keras.optimizer_v2.adam import AdamI solved this problem by uninstalling keras(independent package), and use
kerasin tensorflow.