Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

tf.train.Checkpoint

TensorFlow 1 wersja Zobacz źródło na GitHub

Grupy śledzenia obiektów, zapisywanie i ich przywróceniu.

Stosowany w notebookach

Używany w przewodniku Używany w samouczków

Checkpoint „S konstruktor przyjmuje argumentów słów kluczowych, których wartości są typy zawierające do śledzenia stanu, takie jak tf.keras.optimizers.Optimizer implementacjach, tf.Variable s, tf.data.Dataset iteratorami, tf.keras.Layer implementacji lub tf.keras.Model implementacje. To oszczędza te wartości z punktu kontrolnego, i utrzymuje save_counter numerowania punktów kontrolnych.

Przykładowe zastosowania:

 import tensorflow as tf
import os

checkpoint_directory = "/tmp/training_checkpoints"
checkpoint_prefix = os.path.join(checkpoint_directory, "ckpt")

# Create a Checkpoint that will manage two objects with trackable state,
# one we name "optimizer" and the other we name "model".
checkpoint = tf.train.Checkpoint(optimizer=optimizer, model=model)
status = checkpoint.restore(tf.train.latest_checkpoint(checkpoint_directory))
for _ in range(num_training_steps):
  optimizer.minimize( ... )  # Variables will be restored on creation.
status.assert_consumed()  # Optional sanity checks.
checkpoint.save(file_prefix=checkpoint_prefix)
 

Checkpoint.save() i Checkpoint.restore() zapisu i odczytu punkty kontrolne obiektów opartych, w przeciwieństwie do TensorFlow 1.x za tf.compat.v1.train.Saver który pisze i czyta variable.name oparty punktów kontrolnych. Punktów kontrolnych obiektu oparte zapisuje wykres zależności między obiektami Pythona ( Layer S Optimizer s, Variable s, etc.) z wymienionych krawędzi, a to wykres służy do dopasowywania zmiennych podczas przywracania punkt kontrolny. To może być bardziej odporne na zmiany w programie Python, a także pomaga przywrócić wsparcie na tworzenie zmiennych.

Checkpoint obiekty mają współzależności na obiektach przekazanych jako argumenty słów kluczowych do ich konstruktorów, a każda zależność podano nazwę, która jest identyczna z nazwą argumentu słów kluczowych, dla których został utworzony. Klasy TensorFlow jak Layer s i Optimizer s automatycznie doda zależności od ich własnych zmiennych (np „jądra” i „stronniczości” dla tf.keras.layers.Dense ). Dziedziczenie z tf.keras.Model sprawia, że zarządzanie zależnościami łatwy w klasach zdefiniowanych przez użytkownika, ponieważ Model haki do przypisania atrybutu. Na przykład:

 class Regress(tf.keras.Model):

  def __init__(self):
    super(Regress, self).__init__()
    self.input_transform = tf.keras.layers.Dense(10)
    # ...

  def call(self, inputs):
    x = self.input_transform(inputs)
    # ...
 

Ten Model posiada zależność nazwie „input_transform” na swojej Dense warstwy, która z kolei zależy od zmiennych. W rezultacie oszczędności wystąpienie Regress korzystając tf.train.Checkpoint będzie również zapisać wszystkie zmienne stworzone przez Dense warstwę.

Kiedy zmienne są przypisane do wielu pracowników, każdy pracownik pisze swój własny odcinek kontrolny. Sekcje te są następnie scalane / re-indeksowane zachowywać się jako pojedynczy punkt kontrolny. W ten sposób unika kopiując wszystkie zmienne do jednego pracownika, ale nie wymaga, aby wszyscy pracownicy zobaczyć wspólny system plików.

Choć tf.keras.Model.save_weights i tf.train.Checkpoint.save zapisać w tym samym formacie, uwaga, że korzeniem otrzymanej checkpoint jest przedmiotem Zapisz metodą jest dołączony do. Środki te oszczędności na tf.keras.Model korzystając save_weights i załadunek do tf.train.Checkpoint z Model dołączone (lub odwrotnie) nie będzie dopasować Model zmiennych „s. Zobacz przewodnik szkolenia punktów kontrolnych dla szczegółów. Wolę tf.train.Checkpoint nad tf.keras.Model.save_weights na przejściach szkoleniowych.

**kwargs Argumenty Złożone są ustawione jako atrybutów tego obiektu i są zapisywane z punktu kontrolnego. Wartości muszą być śledzone obiekty.

ValueError Jeśli obiekty kwargs nie są śledzenia.

save_counter Zwiększany gdy save() jest wywoływana. Służy do Liczbę punktów kontrolnych.

metody

read

Pokaż źródło

Przeczytaj punkt kontrolny szkoleniowy napisany z write .

Czyta to Checkpoint i wszelkie obiekty to zależy.

Metoda ta jest jak restore() , ale nie oczekuj save_counter zmiennej w punkcie kontrolnym. To przywraca tylko te obiekty, które już punktu kontrolnego zależy na.

Sposób ten jest przeznaczony głównie do użytku przez wyższe narzędzi zarządzania checkpoint że poziom wykorzystania write() zamiast save() i mają własne mechanizmy do liczby i liczbę punktów kontrolnych.

Przykładowe zastosowania:

 # Create a checkpoint with write()
ckpt = tf.train.Checkpoint(v=tf.Variable(1.))
path = ckpt.write('/tmp/my_checkpoint')

# Later, load the checkpoint with read()
# With restore() assert_consumed() would have failed.
checkpoint.read(path).assert_consumed()

# You can also pass options to restore(). For example this
# runs the IO ops on the localhost:
options = tf.CheckpointOptions(experimental_io_device="/job:localhost")
checkpoint.read(path, options=options)
 

args
save_path Ścieżka do punktu kontrolnego jak zwrócony przez write .
options Opcjonalne tf.train.CheckpointOptions sprzeciwu.

Zwroty
Obiekt stan obciążenia, które mogą zostać wykorzystane do twierdzeń o statusie przywrócenia punktu kontrolnego. Zobacz restore do szczegółów.

restore

Pokaż źródło

Przywracanie kontrolny treningowy.

Przywraca to Checkpoint i żadnych przedmiotów to zależy.

Metoda ta ma być stosowana do punktów kontrolnych obciążenia stworzonych przez save() . Na punktach kontrolnych utworzonych przez write() używać read() metodę, która nie spodziewa się save_counter zmiennej dodany przez save() .

restore() albo wartości przypisywane natychmiast, jeśli zmienne do przywracania zostały stworzone już, albo odracza przywrócenie aż tworzone są zmienne. Zależności dodane po tej rozmowy zostaną dopasowane, czy mają odpowiedni obiekt w punkcie kontrolnym (wniosek o przywrócenie będzie kolejki w dowolnym trackable obiektu czeka na oczekiwaną zależność do dodania).

Aby upewnić się, że ładowanie jest kompletny i nie ma więcej zadań nastąpi, należy użyć assert_consumed() metody obiektu stanu zwróconego przez restore() :

 checkpoint = tf.train.Checkpoint( ... )
checkpoint.restore(path).assert_consumed()

# You can additionally pass options to restore():
options = tf.CheckpointOptions(experimental_io_device="/job:localhost")
checkpoint.restore(path, options=options).assert_consumed()
 

Wyjątek wzrośnie jeśli Pythona obiektów na wykresie zależności, nie stwierdzono w kontroli, czy wszystkie wartości checkpointed nie mają pasujący Pythona obiektu.

Imię oparte tf.compat.v1.train.Saver punkty kontrolne z TensorFlow 1.x mogą być ładowane przy użyciu tej metody. Nazwy są używane w celu dopasowania zmiennych. Punkty kontrolne ponownie zakodować nazwę oparte wykorzystujące tf.train.Checkpoint.save jak najszybciej.

args
save_path Ścieżka do punktu kontrolnego, jak zwrócony przez save lub tf.train.latest_checkpoint . Jeżeli punkt kontrolny został napisany przez nazwa oparte tf.compat.v1.train.Saver , nazwy są używane w celu dopasowania zmiennych.
options Opcjonalne tf.train.CheckpointOptions sprzeciwu.

Zwroty
Obiekt stan obciążenia, które mogą zostać wykorzystane do twierdzeń o statusie przywrócenia punktu kontrolnego.

Zwracany obiekt cywilny ma następujące metody:

  • assert_consumed() : zgłasza wyjątek, jeżeli wszystkie podstawniki mają sobie równych: albo checkpointed wartości, które nie mają pasujący Pythona obiektu lub obiektów Pythona na wykresie zależności bez wartości w punkcie kontrolnym. Metoda ta zwraca obiekt stanu, a więc może być połączony z innymi twierdzeniami.

  • assert_existing_objects_matched() : podnosi wyjątek jeśli istniejące obiekty Pythona w zależności wykres nie mają sobie równych. W przeciwieństwie assert_consumed , twierdzenie to minie, jeśli wartości w punkcie kontrolnym nie mają odpowiednie obiekty Pythona. Na przykład tf.keras.Layer obiekt, który nie został jeszcze zbudowany, a więc nie stworzył żadnych zmiennych, minie ten fakt lecz nie assert_consumed . Przydatne podczas załadunku częścią większego checkpoint do nowego programu Pythona, np checkpoint szkolenie z tf.compat.v1.train.Optimizer został uratowany, ale tylko stan wymagany do wnioskowania jest załadowany. Metoda ta zwraca obiekt stanu, a więc może być połączony z innymi twierdzeniami.

  • assert_nontrivial_match() : twierdzi, że coś na bok od głównego obiektu został dopasowany. Jest to bardzo słaby twierdzenie, ale jest przydatny do sprawdzania czystości w kodzie biblioteki gdzie mogą istnieć obiekty w punkcie kontrolnym, które nie zostały utworzone w Pythonie i niektórych obiektów Pythona nie może mieć wartość checkpointed.

  • expect_partial() : silence ostrzeżenia o niepełnej przywracania kontrolnego. Ostrzeżenia są inaczej drukowane na niewykorzystane części pliku kontrolnego lub obiektu przy Checkpoint obiekt jest usuwany (często przy zamykaniu programu).

save

Pokaż źródło

Zapisuje punkt kontrolny i zapewnia podstawowe szkolenie zarządzanie kontrolnego.

Zapisany checkpoint obejmuje zmienne utworzone przez ten obiekt i każda śledzenia obiektów zależy to od chwili Checkpoint.save() jest wywoływana.

save to podstawowa owijka wygoda całego write metody, kolejno numeracji punktów kontrolnych za pomocą save_counter i aktualizację metadanych wykorzystywanych przez