我在Windows 10上安装了Anaconda和Python 3.5。 当我尝试一个样本模型时,第一个时代需要很长时间才能进入第二个时代!
这是我的模特:
def larger_model():
# create model
model = Sequential()
model.add(Convolution2D(30, 5, 5, border_mode='valid', input_shape=(1, 28, 28), activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Convolution2D(15, 3, 3, activation='relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))
model.add(Dropout(0.2))
model.add(Flatten())
model.add(Dense(128, activation='relu'))
model.add(Dense(50, activation='relu'))
model.add(Dense(num_classes, activation='softmax'))
# Compile model
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])
return model
当我执行python代码时,我收到了这条消息:
Using Theano backend.
WARNING (theano.configdefaults): g++ not detected ! Theano will be unable to execute optimized C-implementations (for both CPU and GPU) and will default to Python implementations. Performance will be severely degraded. To remove this warning, set Theano flags cxx to an empty string.
我试图让模型适合Kaggle,每个时代的持续时间不到2分钟。
答案 0 :(得分:2)
这是因为您的系统上没有安装g ++。如果您使用的是Windows,则需要安装两件事:
1) TDM-GCC :可以从here下载。您还需要将此路径添加到环境变量中。
2) OpenBLAS :可以从here下载。将此路径添加到.theano文件中的theano标记。
答案 1 :(得分:0)
在windows10 64bit hyperV机器上,我训练keras模型
model = tf.keras.models.Sequential([
GaussianNoise(0.1),
Conv2D(filters=Conv2DSize, kernel_size=(3, 3), padding="same",
activation="relu"),
MaxPool2D(),
tf.keras.layers.BatchNormalization(),
Conv2D(filters=Conv2DSize*2, kernel_size=(3, 3), padding="same",
activation="relu"),
MaxPool2D(),
tf.keras.layers.BatchNormalization(),
Conv2D(filters=Conv2DSize*4, kernel_size=(3, 3), padding="same",
activation="relu"),
MaxPool2D(),
tf.keras.layers.BatchNormalization(),
Dropout(0.2),
Flatten(),
Dense(units),
Dense(exam.output_size)]
)
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy'])
第一个 epoch 耗时 168 秒(600 毫秒/步)(CPU 使用率约为 70%)
第二个 epoch 耗时 592 秒(2 秒/步)(CPU 使用率约为 15%)
第三个 epoch 耗时 818 秒(3 秒/步)(CPU 使用率约为 15%)
第 4 个 epoch 耗时 1055 秒(4 秒/步)(CPU 使用率约为 13%)
每个时期的时间增加
我使用 Python 3.8.8、tensorflow 2.3.0、tensorflow-mkl 2.3.0 但是当我在另一台Win7 64位Vmware机器上运行相同的代码时,每个epoch的时间大约是244s并且不会增加。