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

tf.keras.Model

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

Model grupy warstw w obiekt o funkcji treningowych i wnioskowania.

Dziedziczy z: Layer

Stosowany w notebookach

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

inputs Wejście (y) Model A keras.Input przedmiot lub lista keras.Input obiektów.
outputs Wyjście (I) w modelu. Patrz przykład funkcjonalne API poniżej.
name String nazwa modelu.

Istnieją dwa sposoby, aby instancji Model :

1 - Z „API funkcjonalny”, gdzie można rozpocząć od Input , tworzenia łańcucha połączenia warstw określić podaniu modelki, a wreszcie stworzyć swój model z wejść i wyjść:

 import tensorflow as tf

inputs = tf.keras.Input(shape=(3,))
x = tf.keras.layers.Dense(4, activation=tf.nn.relu)(inputs)
outputs = tf.keras.layers.Dense(5, activation=tf.nn.softmax)(x)
model = tf.keras.Model(inputs=inputs, outputs=outputs)
 

2 - Przez instacji Model klasy: w tym przypadku należy zdefiniować warstwy w __init__ i należy wdrożyć podaniu modelki w call .

 import tensorflow as tf

class MyModel(tf.keras.Model):

  def __init__(self):
    super(MyModel, self).__init__()
    self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
    self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)

  def call(self, inputs):
    x = self.dense1(inputs)
    return self.dense2(x)

model = MyModel()
 

Jeśli podklasy Model , można ewentualnie mieć training argumentu (logiczna) w call , które można wykorzystać do określenia innego zachowania w treningu i wnioskowania:

 import tensorflow as tf

class MyModel(tf.keras.Model):

  def __init__(self):
    super(MyModel, self).__init__()
    self.dense1 = tf.keras.layers.Dense(4, activation=tf.nn.relu)
    self.dense2 = tf.keras.layers.Dense(5, activation=tf.nn.softmax)
    self.dropout = tf.keras.layers.Dropout(0.5)

  def call(self, inputs, training=False):
    x = self.dense1(inputs)
    if training:
      x = self.dropout(x, training=training)
    return self.dense2(x)

model = MyModel()
 

Gdy model jest stworzony, można config model ze stratami i metryk z model.compile() , pociąg model z model.fit() , lub użyć modelu do przewidywania zrobić z model.predict() .

distribute_strategy tf.distribute.Strategy model ten został stworzony pod.
layers

metrics_names Zwraca wyświetlania etykiet modelki dla wszystkich wyjść.

inputs = tf.keras.layers.Input(shape=(3,))
outputs = tf.keras.layers.Dense(2)(inputs)
model = tf.keras.models.Model(inputs=inputs, outputs=outputs)
model.compile(optimizer="Adam", loss="mse", metrics=["mae"])
model.metrics_names
[]
x = np.random.random((2, 3))
y = np.random.randint(0, 2, (2, 2))
model.fit(x, y)
model.metrics_names
['loss', 'mae']
inputs = tf.keras.layers.Input(shape=(3,))
d = tf.keras.layers.Dense(2, name='out')
output_1 = d(inputs)
output_2 = d(inputs)
model = tf.keras.models.Model(
   inputs=inputs, outputs=[output_1, output_2])
model.compile(optimizer="Adam", loss="mse", metrics=["mae", "acc"])
model.fit(x, (y, y))
model.metrics_names
['loss', 'out_loss', 'out_1_loss', 'out_mae', 'out_acc', 'out_1_mae',
'out_1_acc']

run_eagerly Ustawiane atrybut wskazujący, czy model powinien działać z zapałem.

Uruchamianie chętnie oznacza, że ​​dany model będzie prowadzony krok po kroku, jak kodzie Pythona. Twój model może działać wolniej, ale powinno stać się łatwiejsze do debugowania go wchodząc do poszczególnych połączeń warstw.

Domyślnie spróbujemy skompilować model statyczny wykres, aby zapewnić najlepszą wydajność wykonania.

metody

compile

Pokaż źródło

Konfiguruje modelu szkolenia.

Argumenty
optimizer String (nazwa optymalizatora) lub wystąpienie optymalizator. Zobacz tf.keras.optimizers .
loss String (nazwa funkcji celu), funkcja celu lub tf.keras.losses.Loss instancji. Zobacz tf.keras.losses . Funkcja celu jest dowolny wywoływalny podpisem loss = fn(y_true, y_pred) , gdzie y_true = wartość prawdy w kształcie ziemia = [batch_size, d0, .. dN] , z wyjątkiem rzadkich, takich jak utrata funkcji rzadkie kategorycznego crossentropy gdzie kształt = [batch_size, d0, .. dN-1] . y_pred = przewidywane wartości o kształcie = [batch_size, d0, .. dN] . Zwraca ważoną tensor utrata płynności finansowej. Jeśli zwyczaj Loss przykład jest stosowany i redukcji wartości Brak wartość powrotna ma postać [batch_size d0 .. dN-1] tj. na próbie lub per kroku to wartości strat; w przeciwnym razie, jest to skalarna. Jeśli model ma wiele wyjść, można użyć innego straty na każdym wyjściu przekazując słownika lub listę strat. Wartość strat, które zostaną zminimalizowane przez model będzie wówczas suma wszystkich indywidualnych strat.
metrics Lista wskaźników do oceny przez model podczas treningu i testowania. Każdy to może być ciągiem (nazwa wbudowanej funkcji), funkcji lub tf.keras.metrics.Metric instancji. Zobacz tf.keras.metrics . Zazwyczaj będziesz używać metrics=['accuracy'] . Funkcja jest dowolny wywoływalny podpisem result = fn(y_true, y_pred) . Aby określić inne dane dla różnych wyjściowych modelu wiele-wyjść, można również zdać słownika, np metrics={'output_a': 'accuracy', 'output_b': ['accuracy', 'mse']} . Jest ona również listę (len = len (wyjścia)) z listy danych, takich jak metrics=[['accuracy'], ['accuracy', 'mse']] i metrics=['accuracy', ['accuracy', 'mse']] . Po przejechaniu „dokładność” strun lub „acc”, możemy przekonwertować to do jednego z tf.keras.metrics.BinaryAccuracy , tf.keras.metrics.CategoricalAccuracy , tf.keras.metrics.SparseCategoricalAccuracy opartego na funkcji wykorzystany i strat Model kształtu wyjściowego. Robimy podobną konwersję strun „crossentropy” i „CE”, jak również.
loss_weights Opcjonalnie listy lub współczynniki określające słownik skalarne (Python płynie) i utratę wagi wkładu w różnych modelach wyjściowych. Wartość strat, które zostaną zminimalizowane przez model będzie wówczas sumę ważoną wszystkich poszczególnych strat, ważone przez loss_weights współczynników. Jeśli na liście, oczekuje się, że mają mapowanie 1: 1 do wyjścia modelu. Jeśli dict, oczekuje się, że mapowania nazw wyjściowych (łańcuchy) dla współczynników skalarnych.
weighted_metrics Lista wskaźników do oceny i ważonej przez sample_weight lub class_weight podczas treningu i testowania.
run_eagerly Bool. Domyślnie jest to False . Jeśli True ta Model logika „s nie zostaną zapakowane w tf.function . Zaleca się pozostawić to jako None , chyba, że Model nie można uruchomić wewnątrz tf.function .
**kwargs Wszelkie dodatkowe argumenty. Obsługiwane argumenty:

  • experimental_steps_per_execution : Int. Numer partii, aby uruchomić podczas każdego tf.function rozmowy. Uruchamianie wielu partii wewnątrz pojedynczego tf.function rozmowy może znacznie poprawić wydajność na TPU lub małych modeli z dużym narzutem Pythona. Zauważ, że jeśli ta wartość jest ustawiona na N , Callback.on_batch metody zostanie wywołana tylko co N partii. To obecnie domyślnie 1 . Co najwyżej jeden pełny epoka będzie uruchamiany za każdym wykonaniem. Jeśli numer większy niż rozmiar epoki jest przekazywana, wykonanie zostanie obcięty do wielkości epoki.
  • sample_weight_mode dla kompatybilności wstecznej.

podbicia
ValueError W przypadku nieprawidłowych argumentów dla optimizer , loss lub metrics .

evaluate

Pokaż źródło

Zwraca wartość utrata wartości i metryki dla modelu w trybie testowym.

Obliczenie jest wykonywane w