当我试图在Keras中修改SGD optimizer的学习率参数时,我遇到了这个错误。我是否在代码中遗漏了什么,或者我的Keras安装不正确?
这是我的密码:
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense, Flatten, GlobalAveragePooling2D, Activation
import keras
from keras.optimizers import SGD
model = Sequential()
model.add(Dense(64, kernel_initializer='uniform', input_shape=(10,)))
model.add(Activation('softmax'))
model.compile(loss='mean_squared_error', optimizer=SGD(lr=0.01), metrics= ['accuracy'])*
下面是错误消息:
回溯(最后一次调用):文件“C:\TensorFlow\Keras\ResNet-50\test\u sgd.py”,第10行,在model.compile(loss='mean\u squared\u error',optimizer=sgd(lr=0.01),metrics=['accurity'])文件“C:\Users\nsugant\AppData\Local\Programs\Python\Python35\lib\site packages\TensorFlow\Python\Python\Python\Keras\Keras\Keras\Keras\Keras\Keras\models.py”,第787行“C:\Users\nsugiant\AppData\Local\Programs\Python 35\lib\site packages\tensorflow\Python\keras\impl\keras\engine\training.py”,第632行,在compile self.optimizer=optimizers.get(优化器)文件“C:\Users\nsugiant\AppData\Local\Programs\Python\Python 35\lib\site packages\tensorflow\Python\Python\keras\Python\keras\Python\keras\keras\pytho,第788行,在get-raise ValueError('无法解释优化器标识符:',标识符)ValueError:('无法解释优化器标识符:',)
此问题主要是由于版本不同造成的。tensorflow.keras版本可能与keras版本不同。从而导致@Priyanka提到的错误。
对我来说,每当出现此错误时,我都将优化器的名称作为字符串传递给后端,由后端计算出来。例如,而不是
tf.keras.optimizers.Adam
或
keras.optimizers.Adam
我确实如此
model.compile(optimizer= 'adam' , loss= keras.losses.binary_crossentropy, metrics=['accuracy'])
我来晚了一点,你的问题是你的代码中混合了Tensorflow keras和keras API。优化器和模型应该来自同一层定义。使用Keras API实现以下所有功能:
from keras.models import Sequential
from keras.layers import Dense, Dropout, LSTM, BatchNormalization
from keras.callbacks import TensorBoard
from keras.callbacks import ModelCheckpoint
from keras.optimizers import adam
# Set Model
model = Sequential()
model.add(LSTM(128, input_shape=(train_x.shape[1:]), return_sequences=True))
model.add(Dropout(0.2))
model.add(BatchNormalization())
# Set Optimizer
opt = adam(lr=0.001, decay=1e-6)
# Compile model
model.compile(
loss='sparse_categorical_crossentropy',
optimizer=opt,
metrics=['accuracy']
)
我在这个例子中使用了亚当。请按照上述代码使用相关优化器。
希望这有帮助。
原因是您对模型和层使用tensorflow.python.keras
API,对SGD使用keras.optimizers
。它们是TensorFlow和纯Keras的两个不同Keras版本。他们不能一起工作。您必须将所有内容更改为一个版本。那么它应该会起作用。
问题内容: 我尝试包含一个名为“ name”的类,但出现错误: 该类存在,并且不包含任何编译错误。 问题答案: 可能存在一些问题。 其中一类具有 测试目标, 而另一类则没有。您甚至必须将所有类都包含在测试目标中,或者不包含任何类。 如果是Objective C类,请检查该类是否在ObjectiveC桥接头文件中。 如果是NSManagedObject子类。在类声明之前添加。 如果它是另一个框架的一
由于在这个so线程上遇到了困难,我决定用PHP编写类似的测试。我的测试代码是这样的: 在PHP版本中运行与非常相似, 因此PHP解释器没有像Java中的JVM那样优化字节码 即使在我手动优化代码的时候--我也有~的加速比,而Java的版本有~的加速比。所以PHP版本的加速系数是Java代码的1/2。 我不想多说细节,但优化和未优化代码的乘法比是-> 1求和:3/4 2求和:4/6 3求和:5/8
问题内容: 我在控制台中遇到这个问题,在控制台中尝试输出函数本身可以工作,但是输出变量或常量却行不通。 如您在此处看到的,尽管您认为var / let拥有的内容,但是Swift却以某种方式找不到它… 问题答案: 因此,事实证明过去可能存在一个错误,即当您添加Swift文件时,它会添加/询问一个Bridging标头,但不会将该行添加到您的项目中 这意味着您将保持这种状态 导致! 我只能找到原因,因为
Oracle 11g Express Edition..创建表时出错 ORA-00904:无效标识符
我已经在虚拟XP中安装了Oracle 10g,并使用 并且成功地创建了表。但是当我试图通过简单的查询获取值时,如 我得到的错误就像 ORA-00904:"bbb":无效标识符 我不能理解我在这里做错了什么。
创建此表后,我正在尝试添加外键 我想使用Alter table创建的外键是Sailnumber: ALTER表成员添加外键(sailnumber)引用船(sailnumber) sailnumber是table boat的主键,如下所示 然而,我得到了这个错误SQL错误: ORA-00904:"SAILNUMBER":无效的标识符,我不知道为什么我得到有人能告诉我哪里出错了吗?