1

J'ai essayé de former mon modèle sur Google Cloud ML en utilisant cet exemple de code:Google Cloud ML est sorti avec un statut non nul de 245 lors de la formation

import keras 
from keras import optimizers 
from keras import losses 
from keras import metrics 
from keras.models import Model, Sequential 
from keras.layers import Dense, Lambda, RepeatVector, TimeDistributed 
import numpy as np 

def test(): 
    model = Sequential() 
    model.add(Dense(2, input_shape=(3,))) 
    model.add(RepeatVector(3)) 
    model.add(TimeDistributed(Dense(3))) 
    model.compile(loss=losses.MSE, 
        optimizer=optimizers.RMSprop(lr=0.0001), 
        metrics=[metrics.categorical_accuracy], 
        sample_weight_mode='temporal') 
    x = np.random.random((1, 3)) 
    y = np.random.random((1, 3, 3)) 
    model.train_on_batch(x, y) 

if __name__ == '__main__': 
    test() 

et j'ai eu cette erreur:

The replica master 0 exited with a non-zero status of 245. Termination reason: Error. 

sortie d'erreur détaillée est grand, donc je suis coller here in pastebin

+0

Dans console.google.com aller dans le menu hamburger, choisissez "ML Engine> Jobs" et cliquez sur votre travail. Faites défiler vers le bas. Comment est votre utilisation de la RAM? Pourriez-vous avoir OOMed? – rhaertel80

+0

pour cette offre particulière 'Il n'y a pas de données pour cette carte'. Mais pour mon autre travail, qui est plus complexe et qui a la même erreur, l'utilisation de la mémoire est 0.0359 – Alex

+0

La sortie du journal indique que vous rencontrez une erreur de segmentation. Avec vos tâches Cloud ML, spécifiez-vous la version de TensorFlow que vous souhaitez utiliser? –

Répondre

0

Le problème est résolu. Tout ce que je devais faire est d'utiliser tensorflow 1.1.0 à la place par défaut 1.0.1

+0

Comment avez-vous changé la version de tensorflow? –

+0

@BadgerCat juste ajouter à setup.py installer exigence tensorflow == 1.1.0 – Alex

0

Notez cette sortie:

Module raised an exception for failing to call a subprocess Command '['python', '-m', u'trainer.test', '--job-dir', u'gs://my_test_bucket_keras/s_27_100630']' returned non-zero exit status -11. 

Et je suppose que google cloud exécutera votre code avec un paramètre supplémentaire appelé --job-dir. Alors peut-être que vous pouvez essayer d'ajouter le code suivant dans votre exemple de code?

import ... 
import argparse 

def test(): 
model = Sequential() 
model.add(Dense(2, input_shape=(3,))) 
model.add(RepeatVector(3)) 
model.add(TimeDistributed(Dense(3))) 
model.compile(loss=losses.MSE, 
       optimizer=optimizers.RMSprop(lr=0.0001), 
       metrics=[metrics.categorical_accuracy], 
       sample_weight_mode='temporal') 
x = np.random.random((1, 3)) 
y = np.random.random((1, 3, 3)) 
model.train_on_batch(x, y) 

if __name__ == '__main__': 
    parser = argparse.ArgumentParser() 
    # Input Arguments 
    parser.add_argument(
     '--job-dir', 
     help='GCS location to write checkpoints and export models', 
     required=True 
    ) 
    args = parser.parse_args() 
    arguments = args.__dict__ 

    test() 
    # test(**arguments) # or if you want to use this job_dir parameter in your code 

Pas 100% sûr que cela fonctionnera, mais je pense que vous pouvez essayer. Aussi, j'ai un post here pour faire quelque chose de similaire, peut-être que vous pouvez y jeter un coup d'oeil aussi.

+0

Merci, en fait j'ai suivi ce tutoriel quand j'ai commencé à utiliser Google ML, ça fonctionnait alors. Mais ressemble à du code n'est pas un problème. – Alex