[PYTHON] Über das Lernen mit Google Colab

Überblick

Obwohl Google Colab überraschend praktisch ist, gibt es ein Problem, dass das Lesen von Daten direkt von Google Drive ungewöhnlich langsam ist. (Bilddaten in meinem Fall) Ich werde also eine .p- oder eine .h5-Datei verwenden, um das Laden zu beschleunigen (so schnell wie das Lesen von einem normalen Gerät).

Gesamtdurchfluss

Ich denke, die Methode wird sich je nach Person ändern, aber in meinem Fall

  1. Erstellen Sie TXT-Dateien, in denen die Datenpfade für Training, Validierung und Test zusammengefasst sind.
  2. Fügen Sie die in 1. erstellte TXT-Datei in die PP-Datei ein (hier wahrscheinlich nicht so schnell).
  3. Erstellen Sie mit der zuvor erstellten .p-Datei eine .h5-Datei, die dem Namen und den Daten (diesmal .png) entspricht.

Ich werde es so machen.

Aufgrund des Einflusses der Aufgabe (Sprachsynthese), an der ich gerade arbeite, schreibe ich auch die Ausgabe, aber für Klassifizierungsaufgaben usw. halte ich es für besser, die Eingabe und Ausgabe als Taple zu speichern, ohne sie zu trennen.

1. Erstellen Sie eine TXT-Datei

maketxt.py


import re
import glob
from sklearn.model_selection import train_test_split

def Create_txt(txt_path):
    #Die Bedingung ist isfile, da sie nur für bewegte Bilder gilt=Ich denke wahr ist in Ordnung.
    fileList = [p for p in glob.glob('./image/**/', recursive=True) if re.search('/segment_', p)]
    #Daten sind 8:1:1
    train_data, val_test_data = train_test_split(fileList, test_size=0.2)
    val_data, test_data =  train_test_split(val_test_data, test_size=0.5)
 
    try:
        train_txt = os.path.join(txt_path, 'train.txt')
        with open(train_txt, mode='x') as f:
            for train_path in train_data:
                f.write(train_path.rstrip('/') + '\n')

        val_txt = os.path.join(txt_path, 'val.txt')
        with open(val_txt, mode='x') as f:
            for val_path in val_data:
                f.write(val_path.rstrip('/') + '\n')

        test_txt = os.path.join(txt_path, 'test.txt')
        with open(test_txt, mode='x') as f:
            for test_path in test_data:
                f.write(test_path.rstrip('/') + '\n')

    except FileExistsError:
        print('already exists')

Was machst du

  1. Rufen Sie alle Datenpfade im Verzeichnis ab
  2. Teilen Sie den erworbenen Pfad
  3. Speichern Sie jede (try-Anweisung wurde geschrieben, um nicht zu überschreiben) ist.

2. Erstellen Sie eine P-Datei

Ursprünglich nimmt die TXT-Datei nicht viel Zeit in Anspruch, sodass Sie sie überspringen können.

p ist eine Abkürzung für Gurke. Es ist ein Python-Modul, das den Status eines Objekts durch Serialisierung des Objekts speichern kann. (Ich würde mich freuen, wenn Sie andere Seiten für den spezifischen Inhalt sehen könnten.)

In diesem Fall wird eine große Anzahl von Zeichenfolgen (Dateinamenpfaden) in einer Datei gespeichert. Ich werde den folgenden Code einfügen, aber ich habe nur die Textdatei gelesen und in die Pickle-Datei eingefügt.

import pickle

video_list =list()
txt_path = os.path.join(txt_path)+ '.txt'
with open(txt_path, 'r') as textFile:
    for line in textFile:
        line = line.replace('\n', '')
        video_list.append(line)

pickle.dump(data_dict, open('txt_file.p', "wb"))

3. Erstellen Sie eine .h5-Datei

Dies ist der Hauptteil dieser Zeit.

Die .h5-Datei ist eine der Binärdateien mit dem Namen HDF5, und Sie können eine hierarchische Struktur in einer Datei haben. Mit anderen Worten, lassen Sie uns die Dateien, die normalerweise auf dem Computer erstellt werden, in einer großen Datei verwalten.

Durch das Speichern einer großen Anzahl von Bilddateien in einer großen Datei wird die Zeit zum Laden von Bildern reduziert. Besonders Google Colab ist langsam, deshalb habe ich es verwendet, als ich es nicht hatte. (Die erste Epoche war besonders eng, es dauerte 10 Minuten statt 2 Stunden.)

Daten schreiben

fileName = 'data.h5'
path = ('./data_file')
#Pickle-Daten lesen
dataFileList = pickle.load(open('txt_file.p', "rb"))
train_list=dataFileList['train']

count =0
with h5py.File(fileName, "w") as f:
  f.create_group('/train')
  f.create_group('/train/input')
  f.create_group('/train/output')
  
  for train in train_list:
    data = pull_item(train)
    f.create_dataset('/train'+data[0].strip('.'), data=data[2])
    f.create_dataset('/train'+data[1].strip('.'), data=data[3])
    f.flush()
    if count %100 ==0:
      print(count)
    count +=1

Als Fluss,

  1. Erstellen Sie eine h5-Datei und erstellen Sie ein Verzeichnis für die Eingabe und ein Verzeichnis für die Ausgabe. (Die Verzeichnisstruktur ist frei, scheint aber bei zu vielen Hierarchien schwer zu lesen zu sein.)

  2. Speichern Sie immer mehr Trainingsdaten.

f.create_dataset('Dateiname', data=Inhalt der Daten)

Machen.

Daten lesen

import h5py
from PIL import Image
import numpy as np
image = ('/train/input/images_18')
output = ('/train/output/images_18.csv')
with h5py.File('data.h5', mode = 'r') as data:
    img_data = data[image]
    img_group = img_data[...]
    img_group = img_group.astype(np.float64)
    feature = data[output]
    feature_data  = feature[...]
    data.close()

Aufgrund der Spezifikationen wird das Objekt für HDF5 beim ersten Lesen der Daten gelesen

img_group = img_data[...]

Es muss angegeben werden, dass der Inhalt des Objekts wie in abgerufen werden soll. Der Rest ist wie gewohnt.

Am Ende

Selbst wenn ich nach "Das Laden von Google Colab ist langsam" usw. gesucht habe, habe ich keinen Artikel über die Verwendung einer Binärdatei gefunden. Ich hoffe, Sie werden die Existenz anhand dieses Artikels erkennen.

Es scheint tiefer zu sein, als ich dachte, ich würde es nachschlagen, aber ich habe nicht viel Zeit und Motivation, es richtig nachzuschlagen. Wenn Sie also mehr wissen möchten, sollten Sie sich andere Seiten ansehen.

Recommended Posts

Über das Lernen mit Google Colab
Maschinelles Lernen mit Pytorch in Google Colab
Spielen Sie mit Turtle auf Google Colab
Deep Learning mit Shogi AI auf Mac und Google Colab
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 1-6
Anmerkungen zu mit
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 8
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 3
Eine Geschichte über maschinelles Lernen mit Kyasuket
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 7
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 10 6-9
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 10
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 7 5-7
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 9
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 3
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 3
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 1-2
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 3
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 3 ~ 5
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 7 9
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 8 5-9
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 8 1-4
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 12 3
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 7 8
Deep Learning mit Shogi AI auf Mac und Google Colab Kapitel 7 1-4
Lernen Sie mit Shogi AI Deep Learning auf Mac und Google Colab Verwenden Sie Google Colab
Tiefes Lernen auf Mac- und Google Colab-Wörtern, die mit Shogi AI gelernt wurden
Cheet Sheet beim Schaben mit Google Colaboratory (Colab)
Authentifizieren Sie Google mit Django
"Objektorientiert" mit Python gelernt
Maschinelles Lernen Über Overlearning
Google Colab Tipps Organisieren
Python lernen mit ChemTHEATER 02
Python lernen mit ChemTHEATER 01
Eine Geschichte über die Vorhersage des Wechselkurses mit Deep Learning
Einfache Möglichkeit, mit Google Colab mit Python zu kratzen
Lernen Sie mit "Google Colaboratory" ganz einfach 100 Sprachverarbeitungsklopfen 2020.
Sprechen Sie mit Cython über die Verbesserung des Engpasses bei Algorithmen für maschinelles Lernen
So bereiten Sie die Umgebung mit Courseras fortgeschrittenem Kurs für maschinelles Lernen auf Google Colab vor
Eine Geschichte über einen Fehler beim Laden eines TensorFlow-Modells, das lokal mit Google Colab erstellt wurde
Maschinelles Lernen mit Pokemon gelernt
Versuchen Sie es mit TensorFlow
Testen Sie eingebettete Software mit Google Test
[Google Colab] So unterbrechen Sie das Lernen und setzen es dann fort
Codefragmente, die häufig bei der Verwendung von BigQuery mit Google Colab verwendet werden
Verbessertes Lernen ab Python
Maschinelles Lernen mit Python! Vorbereitung
Deep Kernel Learning mit Pyro
Versuchen Sie Deep Learning mit FPGA
Über maschinelles Lernen gemischte Matrix
Linux am schnellsten mit AWS lernen
Maschinelles Lernen Minesweeper mit PyTorch
Ein Fehler, der beim Erlernen von YOLO mit Google Colab aufgetreten ist
Beispielcode-Zusammenfassung bei der Arbeit mit Google-Tabellen von Google Colab
Hängen Sie Google Drive mit google-drive-ocamlfuse ein
Greifen Sie mit Python auf Google Drive zu
Feature Engineering für maschinelles Lernen ab Teil 3 Google Colaboratory-Scale