【发布时间】:2022-01-10 19:36:07
【问题描述】:
我正在开发一个程序,当我运行它时出现以下错误:
'Could not interpret optimizer identifier: {}'.format(identifier))
ValueError: Could not interpret optimizer identifier: <keras.optimizer_v2.adam.Adam object at 0x0000023F5EEF4CF8>
我不知道如何解决它,也不知道这是我的问题还是我的外部问题。 问题出现在第 132 行,我只写了 74 行:(
Python version: 3.6.0
Tensorflow version: 2.6.2
Keras version: 2.6.0
图书馆:
import os
from tensorflow.python.keras.preprocessing.image import ImageDataGenerator
from tensorflow.python.keras import optimizers
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dropout, Flatten, Dense, Activation
from tensorflow.python.keras.layers import Convolution2D, MaxPooling2D
from tensorflow.python.keras import backend as K
显示错误前的最后几行代码:
cnn=Sequential()
cnn.add(Convolution2D(filtconv1, siz_filtconv1, padding='same', activation='relu'))
cnn.add(MaxPooling2D(pool_size=siz_pool))
cnn.add(Convolution2D(filtconv2, siz_filtconv2, padding='same', activation='relu'))
cnn.add(MaxPooling2D(pool_size=siz_pool))
cnn.add(Convolution2D(filtconv3, siz_filtconv3, padding='same', activation='relu'))
cnn.add(MaxPooling2D(pool_size=siz_pool))
cnn.add(Flatten())
cnn.add(Dense(128, activation='relu'))
cnn.add(Dropout(0.5))
cnn.add(Dense(classs, activation='softmax'))
print('1')
optim=tensorflow.keras.optimizers.Adam(learning_rate=lr)
print('2')
cnn.compile(optimizer=optim,loss='categorical_crossentropy',metrics=['accuracy'])
print('3')
运行时的输出:
1
2
Traceback (most recent call last):
File "NeuronalRed.py", line 63, in <module>
cnn.compile(optimizer=optim,loss='categorical_crossentropy', metrics=['accuracy'])
File "C:\Users\paula\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\keras\engine\training.py", line 573, in compile
self.optimizer = self._get_optimizer(optimizer)
File "C:\Users\paula\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\keras\engine\training.py", line 611, in _get_optimizer
return nest.map_structure(_get_single_optimizer, optimizer)
File "C:\Users\paula\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\util\nest.py", line 869, in map_structure
structure[0], [func(*x) for x in entries],
File "C:\Users\paula\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\util\nest.py", line 869, in <listcomp>
structure[0], [func(*x) for x in entries],
File "C:\Users\paula\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\keras\engine\training.py", line 602, in _get_single_optimizer
opt = optimizers.get(opt)
File "C:\Users\paula\AppData\Roaming\Python\Python36\site-packages\tensorflow\python\keras\optimizers.py", line 132, in get
'Could not interpret optimizer identifier: {}'.format(identifier))
ValueError: Could not interpret optimizer identifier: <keras.optimizer_v2.adam.Adam object at 0x000001805F30F2E8>
任何帮助将不胜感激
【问题讨论】:
-
但是我不使用 SGD 我使用 Adam,我不知道这是否会改变什么。
-
您正在混合使用 tf.keras 和 keras,请注意您正在使用 tensorflow.keras 导入,但错误指向 keras 优化器(不是 tf.keras 优化器)。
-
我对 tf.keras 和 keras 有点困惑,我明白它说什么但我不知道我应该改变什么。
标签: python tensorflow keras