Google Colab ist sehr langsam im Vergleich zu meinem PC

Ich habe vor kurzem begonnen, die Verwendung von Google Colab, und wollte zu dem Zug meine erste Convolutional NN. Ich importierte die Bilder aus meinem Google-Laufwerk Dank für die Antwort, die ich bekam hier.

Dann klebte ich mein code zum erstellen der CNN in Colab und den Prozess gestartet hat.
Hier ist der vollständige code:

Teil 1: Einrichtung Colab zu importieren Bild von meiner Festplatte

(Teil 1 kopiert von hier wie es funktionierte, wie exptected für mich

Schritt 1:

!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse

Schritt 2:

from google.colab import auth
auth.authenticate_user()

Schritt 3:

from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}

Schritt 4:

!mkdir -p drive
!google-drive-ocamlfuse drive

Schritt 5:

print('Files in Drive:')
!ls drive/

Teil 2: Kopieren und einfügen meine CNN

Habe ich diese CNN mit tutorials aus ein Udemy-Kurs. Es nutzt keras mit tensorflow als backend.
Der Einfachheit halber habe ich hochgeladen, die eine wirklich einfache version, das ist viel genug, um zu zeigen, dass meine Probleme

from keras.models import Sequential
from keras.layers import Conv2D
from keras.layers import MaxPooling2D
from keras.layers import Flatten 
from keras.layers import Dense 
from keras.layers import Dropout
from keras.optimizers import Adam 
from keras.preprocessing.image import ImageDataGenerator 

Parameter

imageSize=32

batchSize=64

epochAmount=50

CNN

classifier=Sequential() 

classifier.add(Conv2D(32, (3, 3), input_shape = (imageSize, imageSize, 3), activation = 'relu')) #convolutional layer

classifier.add(MaxPooling2D(pool_size = (2, 2))) #pooling layer

classifier.add(Flatten())

ANN

classifier.add(Dense(units=64, activation='relu')) #hidden layer

classifier.add(Dense(units=1, activation='sigmoid')) #output layer

classifier.compile(optimizer = "adam", loss = 'binary_crossentropy', metrics = ['accuracy']) #training method

bildvorverarbeitung

train_datagen = ImageDataGenerator(rescale = 1./255,
                               shear_range = 0.2,
                               zoom_range = 0.2,
                               horizontal_flip = True)

test_datagen = ImageDataGenerator(rescale = 1./255) 

training_set = train_datagen.flow_from_directory('drive/School/sem-2-2018/BSP2/UdemyCourse/CNN/dataset/training_set',
                                             target_size = (imageSize, imageSize),
                                             batch_size = batchSize,
                                             class_mode = 'binary')

test_set = test_datagen.flow_from_directory('drive/School/sem-2-2018/BSP2/UdemyCourse/CNN/dataset/test_set',
                                        target_size = (imageSize, imageSize),
                                        batch_size = batchSize,
                                        class_mode = 'binary')

classifier.fit_generator(training_set,
                     steps_per_epoch = (8000//batchSize),
                     epochs = epochAmount,
                     validation_data = test_set,
                     validation_steps = (2000//batchSize))

Jetzt kommt mein Problem

Zuerst, die Ausbildung, die ich verwendet, ist eine Datenbank mit 10000 Hund und Katze Bilder von verschiedenen Auflösungen. (8000 training_set, 2000 test_set)

Ich diese lief CNN auf Google Colab (mit GPU-Unterstützung aktiviert ist) und auf meinem PC (tensorflow-gpu auf GTX-1060)

Dies ist ein Zwischenergebnis von meinem PC:

Epoch 2/50
63/125 [==============>...............] - ETA: 2s - loss: 0.6382 - acc: 0.6520

Und diese von Colab:

Epoch 1/50
13/125 [==>...........................] - ETA: 1:00:51 - loss: 0.7265 - acc: 0.4916

Warum ist Google Colab so langsam auch in meinem Fall?

Ich persönlich vermute, dass ein Engpass bestehend aus ziehen und dann Lesen die Bilder von meiner Festplatte, aber ich weiß nicht, wie man dieses Problem lösen andere als die Wahl einer anderen Methode zum importieren der Datenbank.

  • Ja, ich denke auch, dass dies geschieht, weil der Netzwerk-overhead, weil der Zugriff auf Daten aus dem Laufwerk. Sie können versuchen, kopieren Sie Ihre Daten von Laufwerk zu colab-Instanz, so dass es lokal verfügbar.
  • Ich habe das gleiche problem mit colab, hast du eine Lösung finden? Würde es Ihnen etwas ausmachen sharing eine colab-notebook für die Leute Lesen deine Frage?
InformationsquelleAutor charel-f | 2018-03-19
Schreibe einen Kommentar