2017-12-30 46 views
0

Ich führe ein Bildklassifizierungsmodell. Dies ist, wo ich stecken geblieben bin. Es wurde versucht, die Keras-Version auf 1.0.2 herunterzurüsten und das Skript erneut auszuführen, funktionierte nicht.keras stoppt die Arbeit an der ersten Epoche

Jupyter Notebook hält nur die Verarbeitung und nichts nach der ersten Epoche läuft, Code auf dem keras 1.2 mit Python 3.5

OUTPUT:

/anaconda/envs/py35/lib/python3.5/site-packages/ipykernel/__main__.py:19: UserWarning: Update your `Dense` call to the Keras 2 API: `Dense(101, activation="softmax", kernel_initializer="glorot_uniform", kernel_regularizer=<keras.reg...)` 
/anaconda/envs/py35/lib/python3.5/site-packages/ipykernel/__main__.py:21: UserWarning: Update your `Model` call to the Keras 2 API: `Model(outputs=Tensor("de..., inputs=Tensor("in...)` 
/anaconda/envs/py35/lib/python3.5/site-packages/ipykernel/__main__.py:44: UserWarning: The semantics of the Keras 2 argument `steps_per_epoch` is not the same as the Keras 1 argument `samples_per_epoch`. `steps_per_epoch` is the number of batches to draw from the generator at each epoch. Basically steps_per_epoch = samples_per_epoch/batch_size. Similarly `nb_val_samples`->`validation_steps` and `val_samples`->`steps` arguments have changed. Update your method calls accordingly. 
/anaconda/envs/py35/lib/python3.5/site-packages/ipykernel/__main__.py:44: UserWarning: Update your `fit_generator` call to the Keras 2 API: `fit_generator(<image_gen..., verbose=2, epochs=32, validation_steps=25250, validation_data=<image_gen..., steps_per_epoch=1183, callbacks=[<keras.ca...)` 
Epoch 1/32 

INPUT:

%%time 
from keras.models import Sequential, Model 
from keras.layers import Dense, Dropout, Activation, Flatten 
from keras.layers import Convolution2D, MaxPooling2D, ZeroPadding2D, GlobalAveragePooling2D, AveragePooling2D 
from keras.layers.normalization import BatchNormalization 
from keras.preprocessing.image import ImageDataGenerator 
from keras.callbacks import ModelCheckpoint, CSVLogger, LearningRateScheduler, ReduceLROnPlateau 
from keras.optimizers import SGD 
from keras.regularizers import l2 
import keras.backend as K 
import math 

K.clear_session() 

base_model = InceptionV3(weights='imagenet', include_top=False, input_tensor=Input(shape=(299, 299, 3))) 
x = base_model.output 
x = AveragePooling2D(pool_size=(8, 8))(x) 
x = Dropout(.4)(x) 
x = Flatten()(x) 
predictions = Dense(n_classes, kernel_initializer='glorot_uniform', W_regularizer=l2(.0005), activation='softmax')(x) 





model = Model(input=base_model.input, output=predictions) 

opt = SGD(lr=.01, momentum=.9) 
model.compile(optimizer=opt, loss='categorical_crossentropy', metrics=['accuracy']) 

checkpointer = ModelCheckpoint(filepath='model4.{epoch:02d}-{val_loss:.2f}.hdf5', verbose=1, save_best_only=True) 
csv_logger = CSVLogger('model4.log') 

def schedule(epoch): 
    if epoch < 15: 
     return .01 
    elif epoch < 28: 
     return .002 
    else: 
     return .0004 
lr_scheduler = LearningRateScheduler(schedule) 

model.fit_generator(train_generator, 
        validation_data=test_generator, 
        nb_val_samples=X_test.shape[0], 
        samples_per_epoch=X_train.shape[0], 
        nb_epoch=32, 
        verbose=2, 
        callbacks=[lr_scheduler, csv_logger, checkpointer]) 

Antwort

0

Versuchen Sie mit verbose = 1 in Ihrem model.fit Aufruf, es wird den Fortschrittsbalken drucken. Es funktioniert wahrscheinlich, aber aufgrund des Werts von 2, der dem ausführlichen Parameter gegeben wird, wird nur eine Ausgabezeile NACH dem Ende der Epoche ausgegeben, was je nach CPU/GPU und Datenmenge einige Zeit dauern kann.

+0

Hat nicht funktioniert, es ist immer noch dort stecken, und läuft definitiv nicht anythin Ich habe eine NVIDIA Pascal mit 12 Kernen bei 110 GB verwendbar Speicher – smk

+0

@smk Wie bestimmen Sie, dass es nichts tut? Wie lange hast du darauf gewartet, dass etwas produziert wird? –

+0

Ich habe 3 Stunden gewartet und es hat nicht alles Auch bekam dies am Notebook Ende laufen: \t I tensorflow/core/common_runtime/gpu/gpu_device.cc: 1120] Erstellen TensorFlow Gerät (/ Gerät: GPU: 1) - > (Gerät: 1, Name: Tesla K80, PCI-Bus-ID: 5534: 00: 00.0, Rechnenfähigkeit: 3.7) \t [I 00: 54: 05.391 NotebookApp] Datei unter /image_ai/Untitled.ipynb speichern – smk

Verwandte Themen