2016-10-14 6 views
1

を使用するkeras + theanoを取得するにはどうすれば私はNO GPUでkerasとtheanoを使用しています。このコードに> 1コア

https://github.com/fchollet/keras/blob/master/examples/mnist_cnn.py

from __future__ import print_function 
import numpy as np 
np.random.seed(1337) # for reproducibility 

from keras.datasets import mnist 
from keras.models import Sequential 
from keras.layers import Dense, Dropout, Activation, Flatten 
from keras.layers import Convolution2D, MaxPooling2D 
from keras.utils import np_utils 
from keras import backend as K 

batch_size = 128 
nb_classes = 10 
nb_epoch = 12 

# input image dimensions 
img_rows, img_cols = 28, 28 
# number of convolutional filters to use 
nb_filters = 32 
# size of pooling area for max pooling 
pool_size = (2, 2) 
# convolution kernel size 
kernel_size = (3, 3) 

# the data, shuffled and split between train and test sets 
(X_train, y_train), (X_test, y_test) = mnist.load_data() 

if K.image_dim_ordering() == 'th': 
    X_train = X_train.reshape(X_train.shape[0], 1, img_rows, img_cols) 
    X_test = X_test.reshape(X_test.shape[0], 1, img_rows, img_cols) 
    input_shape = (1, img_rows, img_cols) 
else: 
    X_train = X_train.reshape(X_train.shape[0], img_rows, img_cols, 1) 
    X_test = X_test.reshape(X_test.shape[0], img_rows, img_cols, 1) 
    input_shape = (img_rows, img_cols, 1) 

X_train = X_train.astype('float32') 
X_test = X_test.astype('float32') 
X_train /= 255 
X_test /= 255 
print('X_train shape:', X_train.shape) 
print(X_train.shape[0], 'train samples') 
print(X_test.shape[0], 'test samples') 

# convert class vectors to binary class matrices 
Y_train = np_utils.to_categorical(y_train, nb_classes) 
Y_test = np_utils.to_categorical(y_test, nb_classes) 

model = Sequential() 

model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1], 
         border_mode='valid', 
         input_shape=input_shape)) 
model.add(Activation('relu')) 
model.add(Convolution2D(nb_filters, kernel_size[0], kernel_size[1])) 
model.add(Activation('relu')) 
model.add(MaxPooling2D(pool_size=pool_size)) 
model.add(Dropout(0.25)) 

model.add(Flatten()) 
model.add(Dense(128)) 
model.add(Activation('relu')) 
model.add(Dropout(0.5)) 
model.add(Dense(nb_classes)) 
model.add(Activation('softmax')) 

model.compile(loss='categorical_crossentropy', 
       optimizer='adadelta', 
       metrics=['accuracy']) 

model.fit(X_train, Y_train, batch_size=batch_size, nb_epoch=nb_epoch, 
      verbose=1, validation_data=(X_test, Y_test)) 
score = model.evaluate(X_test, Y_test, verbose=0) 
print('Test score:', score[0]) 
print('Test accuracy:', score[1]) 

をテストしています。それは正常に動作しますが、1つのコアのみを使用します。

どのようにして複数のコアを使用することができますか?

答えて

0
  1. anacondaをインストールします。今度はMKLが付属し、スレッド数を設定します
  2. import mkl; mkl.set_num_threads(n_cores_in_your_cpu)
関連する問題