这是我试图建立的神经网络的代码:
from keras import layers
from keras import models
from keras import optimizers
from keras.preprocessing.image import ImageDataGenerator
train_dir = 'C:/Users/BaskaranBadr/Documents/Deep Learning/cats_and_dogs_small/train'
validation_dir = 'C:/Users/BaskaranBadr/Documents/Deep Learning/cats_and_dogs_small/validation'
model = models.Sequential()
model.add(layers.Conv2D(32, (3,3), activation='relu', input_shape = (150,150,3)))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Conv2D(64, (3,3), activation='relu', input_shape = (150,150,3)))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Conv2D(128, (3,3), activation='relu', input_shape = (150,150,3)))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Conv2D(128, (3,3), activation='relu', input_shape = (150,150,3)))
model.add(layers.MaxPooling2D((2,2)))
model.add(layers.Flatten())
model.add(layers.Dense(512, activation='relu'))
model.add(layers.Dense(1, activation='sigmoid'))
model.compile(loss='binarycrossentropy', optimizer=optimizers.rmsprop_v2(lr=0.0001), metrics = ['acc'])
我一直得到的错误是:
Traceback (most recent call last):
File "c:UsersBaskaranBadrDocumentsDeep LearningCatDogClassifier.py", line 24, in <module>
model.compile(loss='binarycrossentropy', optimizer=optimizers.rmsprop_v2(lr=0.0001), metrics = ['acc'])
TypeError: 'module' object is not callable
rmsprop_v2
只是optimizers
包中rmsprop
模块的别名(请参阅GitHub上的keras(。你不应该使用这个别名。只是
from keras import optimizers
然后
opt = optimizers.RMSprop(learning_rate=0.0001)
model.compile(loss='binarycrossentropy', optimizer=opt, metrics = ['acc'])
我不知道rmsprop_v2
是否存在,或者它是keras.optimizer_v2
的rmsprop
,你可以查看keras
的这个链接
如果您想使用RMSprop
,可以按照以下方式操作:
import tensorflow as tf
optim = tf.keras.optimizers.RMSprop(lr=0.0001)
model.compile(loss='binarycrossentropy', optimizer=optim, metrics = ['acc'])
要访问Tensorflow 1中的Keras,请使用"import Keras"。使用tensorflow 2时,大多数较旧的代码和教程需要将其导入重写为"from tensorflow.keras import X"。
用途:
from tensorflow.keras.optimizers import RMSprop