2016-03-08 5 views
0

Je voulais former un réseau de neurones en utilisant des keras, mais l'entraînement ne démarre pas, et ça se passe dans des situations vraiment bizarres.Les réseaux de neurones sont compilés mais la formation ne démarre pas

Voici une partie de mon code:

model = Sequential() 
model.add(Convolution2D(8, 7, 7, border_mode='valid', input_shape=(1, 31, 31), activation='tanh')) 
model.add(MaxPooling2D(pool_size=(2, 2))) 
model.add(Convolution2D(16, 5, 5, border_mode='valid', activation='tanh')) 
model.add(MaxPooling2D(pool_size=(2, 2))) 
model.add(Convolution2D(32, 3, 3, border_mode='valid', activation='relu')) 
model.add(Flatten()) 
model.add(Dense(23)) 
model.add(Activation('tanh')) 
model.add(Dropout(0.1)) 
model.add(Dense(11)) 
model.add(Activation('sigmoid')) 
model.add(Dropout(0.1)) 
model.add(Dense(1)) 
model.add(Activation('sigmoid')) 

optimizer = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True) 
print("optimizer done") 
model.compile(loss='binary_crossentropy', optimizer=optimizer) 
print("compile done") 
sys.stdout.flush() 

model.fit(dataset, labels, batch_size=batch_size, nb_epoch=nb_epoch, shuffle=True, validation_split=0.1, verbose=2) 

Si je lance ce code dans le terminal en utilisant python mynn.py, tout va bien et la formation commence.

Mais si je lance ce code dans le terminal en utilisant python mynn.py &, python mynn.py > results.txt, ou si je rediriger les sorties dans mon code sys.stdout = open('Outputs.txt', 'w'), le décrochage du programme pour la méthode fit, donc l'apprentissage ne démarre pas. Le compile done est affiché, mais rien de plus, pas de formation.

J'ai regardé et il semble que le programme continue d'appeler cette fonction clock_gettime(CLOCK_MONOTONIC_RAW, {,}) = 0

Toutes les idées pourquoi il ne démarre pas quand je réoriente les sorties?

Répondre

0

Enfin, le processus démarre mais rien n'est affiché dans le terminal ou écrit dans le fichier de sortie jusqu'à ce que l'entraînement soit complètement terminé (toute l'époque). Je l'ai découvert en démarrant de nombreuses petites formations avec juste quelques époques, et tout était affiché seulement quand toutes les formations étaient terminées.