在Windows 10中安装Keras模型的性能非常慢

时间:2016-12-06 14:28:35

标签: python windows anaconda keras kaggle

我在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分钟。

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并且不会增加。