Custom models and training with tensorflow Flashcards
konwersja w tensorflow
nie jest automatyczna,
zeby ograniczyc bledy i przyspieszyc
trzeba uzyc tf.cast()
zmienne
tf.contant
albo tf.Variable`
assing()
sluzy do modyfikacji w miejscu\
scatter_update
sluzy do zmian w miejscu indywidualnych komorek
v.scatter_nd_update(indices=[[0, 0], [1, 2]], updates=[100., 200.])
jak uzyc wlasnej funkcji kosztu?
model.compile(loss=huber_fn, optimizer
przy wczytywaniu gotowego modelu trzeba zmapowac nazwe funckcji do funkcji
tf.where()
zwraca te elementy ktore spelniaja warunek
metryki
powinny miec latwo intepretowalne,
nie musza byc rozniczkowalne i miec gradient rozny od 0
sluza do oceny modelu
mozna zrobic wlasna klase, ktora dziedziczy po keras.metrics.Metric
tworzenie wlasnych warstw
warstwa bez zadnych wag : keras.layers.Lambda()
customowa warstwa -> dziedziczenie po keras.layers.Layer
build() -> tworzenie zmiennych dla warstwy: wykoprzystanie add_weight()
call->wykonuje operacje
jak stworzyc layer z wieloma inputami?
call powinien przyjmowac tuple z inputami
jak stworzyc layer ktory zachowuje sie inaczej podczas treningu i testowania?
trzeba dodac argument training do call()
autodif - do czego i jak dziala?
zeby nie liczyc przyblizonej pochodnej w punkcie dla kazdego parametru osobno
nalezy wykorzystac tf.GradientTape contex i uzyc f(parametry)
automatycznie sie usuwa po zakonczeniu, mozna wykorzystac tylko raz
jesli trzeba wiecej razy -> parametr persistent
jak zatrzymac backpropagation niektorych czesci sieci?
tf.stop_gradient
niestabilnosc numeryczna gradientu
czasami z powodu bledow prezycji funkcja moze dzielic nieskonczonosc przez nieskonczonosc,
mozna wtedy analitycznie obliczyc funkcje i ustawic ja w zamian -> dekorator @tf.custom_gradient
jak przeksztalcic funkcje z pythona w funkcje tensorflow>
albo dekorator albo tf.function(funkcja)
bedzie dzialac szybciej i zrobi nam graf