我有一个使用'theano'后端训练的分类器模型。该模型正常工作,我得到了预期的分类性能。张量大小为Nx3x28x112
但是,我想在另一个包含GANs实现(带有'tensorflow'后端)的文件(main_file.py)中使用相同的分类器。因此,我想在main_file.py中使用相同的分类器,并更改张量的输入大小以使其为Nx28x112x3
(这是张量流后端的正确输入)。训练过程开始时,演奏的性能与我使用“ theano”获得的演奏性能不相近,并且接近随机演奏。我的模型如下:
def createModel():
model = Sequential()
# The first two layers with 32 filters of window size 3x3
model.add(Conv2D(28, (3, 3), padding='same', activation='relu', input_shape=(28, 112, 3)))
# or input_shape = (3, 28, 112) in case of theano backend
model.add(Conv2D(28, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Conv2D(64, (3, 3), padding='same', activation='relu'))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Conv2D(64, (3, 3), padding='same', activation='relu'))
model.add(Conv2D(64, (3, 3), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.25))
model.add(Flatten())
model.add(Dense(512, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(128, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(nClasses, activation='softmax'))
return model
我应该怎么做才能使模型正常运行?后端更改时,除了输入张量的顺序之外,有什么根本的区别吗?