Czym jest TensorFlow? Jak to działa? ArchiTechnologia i funkcje

⚡ Inteligentne podsumowanie

TensorFlow to platforma typu open source Google Stworzony z myślą o uczeniu maszynowym, reprezentujący każde obliczenie jako graf przepływu danych tensorów. Ten przegląd obejmuje architekturę, komponenty, sposób wykonywania obliczeń oraz sposób przesyłania danych przez potok wejściowy.

  • 🧮 Główny obiekt: Tensor to n-wymiarowa tablica, której wartości mają jeden wspólny typ danych i znany lub częściowo znany kształt.
  • 🔗 Model grafu: Węzły przenoszą operacje, krawędzie przenoszą tensory, a cały graf można zapisać, przenieść i odtworzyć później.
  • 🏗️. Trzyetapowy Archistruktura: Wstępnie przetwórz dane, zbuduj model, a następnie go wytrenuj i oceń.
  • ⚠️ Granica wersji: tf.placeholder i tf.Session należą do TensorFlow 1.x i zostały usunięte w wersji 2.0, która domyślnie uruchamia się dynamicznie.
  • 💾 Ładowanie danych: Za pomocą pandasa możesz ładować małe zestawy danych do pamięci, a w przypadku danych zbyt dużych, aby się zmieściły, użyj potoków tf.data.
  • 📊 Monitoring: TensorBoard wizualizuje wykres, metryki i rozkład wag podczas trenowania modelu.

Czym jest TensorFlow Architektura

Co to jest TensorFlow?

TensorFlow jest otwartą platformą end-to-end do tworzenia aplikacji uczenia maszynowego. Jest to symboliczna biblioteka matematyczna, która wykorzystuje przepływ danych i programowanie różniczkowalne do wykonywania różnych zadań skupionych na szkoleniu i wnioskowaniu głębokich sieci neuronowych. Umożliwia programistom tworzenie aplikacji uczenia maszynowego przy użyciu różnych narzędzi, bibliotek i zasobów społeczności.

Obecnie najsłynniejszą biblioteką głębokiego uczenia na świecie jest GoogleTensorFlow. Google stosuje uczenie maszynowe w swoich produktach w celu usprawnienia wyszukiwania, tłumaczeń, tworzenia podpisów pod obrazkami i rekomendacji.

Przykład TensorFlow

Aby podać konkretny przykład, Google Użytkownicy mogą korzystać z szybszego i bardziej precyzyjnego wyszukiwania dzięki sztucznej inteligencji. Jeśli użytkownik wpisze słowo kluczowe w pasku wyszukiwania, Google podaje rekomendację dotyczącą tego, jakie mogłoby być następne słowo.

Przykład TensorFlow
Przykład TensorFlow

Google chce wykorzystać uczenie maszynowe, aby wykorzystać swoje ogromne zbiory danych i zapewnić użytkownikom jak najlepsze doświadczenia. Trzy różne grupy korzystają z uczenia maszynowego:

  • Badacze
  • Naukowcy zajmujący się danymi
  • Programiści

Wszyscy mogą używać tego samego zestawu narzędzi do współpracy ze sobą i zwiększania swojej wydajności.

Google TensorFlow nie tylko przechowuje duże zbiory danych, ale także obsługuje ogromną infrastrukturę obliczeniową, dlatego od samego początku został zaprojektowany z myślą o skalowalności. TensorFlow to biblioteka opracowana przez Google Brain Team przyspieszy badania nad uczeniem maszynowym i głębokimi sieciami neuronowymi.

Został stworzony do działania na wielu procesorach CPU lub GPU, a nawet mobilnych systemach operacyjnych i ma kilka wrapperów w różnych językach, takich jak Python, C++ or Java.

Historia TensorFlow

Kilka lat temu głębokie uczenie zaczęło przewyższać wszystkie inne algorytmy uczenia maszynowego przy przetwarzaniu ogromnych ilości danych. Google dostrzegła, że ​​może wykorzystać te głębokie sieci neuronowe do ulepszenia swoich usług:

  • Gmail
  • Photo
  • Google Wyszukiwarka

Zbudowali strukturę zwaną TensorFlow tak aby badacze i deweloperzy mogli pracować na tym samym modelu, a następnie wdrożyć go na skalę, z której mogłoby skorzystać wiele osób.

TensorFlow został udostępniony publicznie w listopadzie 2015 r., a wersja 1.0 pojawiła się w lutym 2017 r. Znacznie większa zmiana nastąpiła wraz z TensorFlow 2.0 we wrześniu 2019 r., który uczynił wykonywanie chętne domyślnym i przyjął Keras jako standardowe API wysokiego poziomu. Od wersji 2.16 Keras 3 jest domyślny, a ten sam kod modelu może działać również w JAX lub Py.Torch zaplecza.

TensorFlow jest udostępniany na licencji Apache 2.0, dzięki czemu możesz go używać, modyfikować i rozpowszechniać, także komercyjnie, bez konieczności płacenia Google.

Jak działa TensorFlow

TensorFlow umożliwia tworzenie grafów i struktur przepływu danych, aby zdefiniować sposób, w jaki dane przemieszczają się przez graf, przyjmując dane wejściowe jako wielowymiarową tablicę zwaną Tensor. Umożliwia to skonstruowanie schematu blokowego operacji, które można wykonać na tych danych wejściowych, który przechodzi z jednego końca i trafia z drugiego końca jako dane wyjściowe.

TensorFlow Architektura

Architektura TensorFlow składa się z trzech części:

  • Wstępne przetwarzanie danych
  • Zbuduj model
  • Wytrenuj i oszacuj model

Nazywa się TensorFlow, ponieważ przyjmuje dane wejściowe w postaci tablicy wielowymiarowej, znanej również jako tensory. Można skonstruować coś w rodzaju schemat blokowy operacji (nazywanych Grafem), które chcesz wykonać na tym wejściu. Wejście wchodzi na jednym końcu, a następnie przepływa przez ten system wielu operacji i wychodzi na drugim końcu jako wyjście.

Gdzie można uruchomić TensorFlow?

Wymagania sprzętowe i programowe TensorFlow dzielą się na dwie fazy:

Faza rozwoju:odbywa się to podczas trenowania modelu, zwykle na komputerze stacjonarnym lub laptopie.

Faza uruchomienia lub wnioskowania:po zakończeniu szkolenia model może działać na wielu platformach:

  • Uruchomiony pulpit Windows, macOS lub Linuksa
  • Chmura jako usługa internetowa
  • Urządzenia mobilne, takie jak iOS i Android

Możesz go trenować na wielu maszynach, a następnie uruchomić go na innej maszynie, gdy już będziesz mieć przeszkolony model.

Model można trenować i używać zarówno na procesorach graficznych (GPU), jak i procesorach CPU. Procesory graficzne (GPU) zostały pierwotnie zaprojektowane do gier wideo. Około 2009 roku naukowcy ze Stanford wykazali, że procesory graficzne (GPU) są niezwykle wydajne w operacjach na macierzach i algebrze liniowej, od których zależą sieci neuronowe. Głębokie uczenie (Głębokie uczenie) opiera się w dużej mierze na mnożeniu macierzy. TensorFlow jest bardzo szybki w obliczaniu mnożenia macierzy, ponieważ jest napisany w języku programowania. C++. Chociaż jest zaimplementowany w C++Dostęp do TensorFlow i kontrolowanie go można uzyskać głównie w innych językach, Python.

Kolejną ważną cechą jest to, że Tensorboard, który wizualizuje wykres, metryki szkoleniowe i rozkład wag podczas działania modelu.

Komponenty TensorFlow

napinacz

Nazwa TensorFlow bezpośrednio pochodzi od jego podstawowego frameworka: napinaczW TensorFlow wszystkie obliczenia obejmują tensory. Tensor to wektor or matryca n-wymiarów reprezentujących wszystkie typy danych. Wszystkie wartości w tensorze zawierają identyczny typ danych ze znanym (lub częściowo znanym) kształt. Kształt danych to wymiar macierzy lub tablicy.

Tensor może pochodzić z danych wejściowych lub wyniku obliczeń. W TensorFlow wszystkie operacje są przeprowadzane wewnątrz wykres. Graf to zbiór obliczeń, które odbywają się kolejno. Każda operacja nazywana jest węzeł operacyjny i są ze sobą połączone.

Wykres przedstawia operacje i połączenia między węzłami. Jednak nie wyświetla wartości. Krawędź węzłów jest tensorem, tj. sposobem na wypełnienie operacji danymi.

Wykresy

TensorFlow korzysta ze struktury grafów. Wykres gromadzi i opisuje wszystkie obliczenia serii wykonane podczas treningu. Wykres ma wiele zalet:

  • Działa na wielu procesorach lub kartach graficznych, a nawet w systemach operacyjnych urządzeń mobilnych
  • Przenośność grafu pozwala na zachowanie obliczeń do natychmiastowego lub późniejszego wykorzystania. Graf można zapisać, aby wykonać go w przyszłości.
  • Wszystkie obliczenia na wykresie przeprowadza się poprzez połączenie tensorów
    • Graf ma węzły i krawędzie. Każdy węzeł wykonuje operację matematyczną i generuje wynik, podczas gdy krawędzie opisują relacje wejściowe i wyjściowe między węzłami. Same tensory przemieszczają się wzdłuż krawędzi.

Dlaczego TensorFlow jest popularny?

TensorFlow jest powszechnie stosowany, ponieważ jest dostępny na każdym poziomie zaawansowania. Jego API obejmuje wszystko, od trzyliniowego modelu Keras po ręcznie tworzony CNN lub RNN. Ponieważ obliczenia są wyrażane w postaci grafu, TensorBoard może wizualizować sieć i znacznie ułatwiać debugowanie. Działa również na dużą skalę, działając na procesorach CPU, GPU i TPU, a także na urządzeniach mobilnych za pośrednictwem TensorFlow Lite.

TensorFlow pozostaje jednym z dwóch najczęściej używanych frameworków do głębokiego uczenia się w serwisie GitHub, obok PyTorch.

TensorFlow Algorithms

TensorFlow zawiera estymatory wysokiego poziomu dla kilku klasycznych algorytmów. W TensorFlow 1.x były one dostępne w ramach tf.estimator:

  • Regresja liniowa: tf.estimator.LinearRegressor
  • Klasyfikacja: tf.estimator.LinearClassifier
  • Klasyfikacja głębokiego uczenia się: tf.estimator.DNNClassifier
  • Szerokie i głębokie uczenie się: tf.estimator.DNNLinearCombinedClassifier
  • Wzmocniona regresja drzewa: tf.estimator.BoostedTreesRegressor
  • Wzmocniona klasyfikacja drzewa: tf.estimator.BoostedTreesClassifier

TensorFlow kontra PyTorch: Który powinieneś wybrać?

TensorFlow i PyTorch to dwa dominujące frameworki głębokiego uczenia, a różnice praktyczne znacznie się zmniejszyły, odkąd TensorFlow 2.0 przyjął funkcję szybkiego wykonywania.

kryteria TensorFlow PyTorch
Opracowany przez Google Mózg Meta AI
Egzekucja Chętny, z opcjonalną kompilacją wykresu Chętny, z opcjonalną kompilacją
Interfejs API wysokiego poziomu Keras, zbudowany w Oddzielne biblioteki, takie jak Lightning
Mobilne i brzegowe Dojrzały, przez TensorFlow Lite Ulepszanie poprzez ExecuTorch
Wdrożenie przeglądarki TensorFlow.js Wymaga konwersji do ONNX
Typowa twierdza Produkcja i wdrażanie Badania i eksperymenty

Pragmatyczna odpowiedź: wybierz TensorFlow, gdy model musi być dostarczany na urządzenia mobilne, przeglądarki lub stos zarządzanych usług, a następnie wybierz PyTorch podczas iteracji architektury modelu. Keras 3, domyślny od TensorFlow 2.16, dodatkowo łagodzi decyzję, ponieważ ten sam kod Keras może działać w TensorFlow, JAX lub Py.Torch back-end.

Jak działają obliczenia w TensorFlow

⚠️ Uwaga dotycząca wersji: poniższe przewodniki wykorzystują TensorFlow 1.x styl wykresu i sesji, który jest najwyraźniejszym sposobem, aby zobaczyć, jak faktycznie działa wykres przepływu danych. tf.placeholder(), tf.Session() i make_initializable_iterator() zostały usunięte w TensorFlow 2.0 i spowoduje błąd AttributeError w bieżącej instalacji. Sekcja TensorFlow 1.x kontra TensorFlow 2.x poniżej podano współczesne odpowiedniki każdego przykładu.

import numpy as np
import tensorflow as tf

W pierwszych dwóch wierszach kodu zaimportowaliśmy tensorflow jako tf. Z Python, powszechną praktyką jest używanie krótkiej nazwy biblioteki. Zaletą jest uniknięcie wpisywania pełnej nazwy biblioteki, gdy musimy z niej skorzystać. Na przykład możemy zaimportować tensorflow jako tf i wywołać tf, gdy chcemy użyć funkcji tensorflow

Przećwiczmy podstawowy przepływ pracy TensorFlow na prostych przykładach TensorFlow. Stwórzmy graf obliczeniowy mnożący dwie liczby przez siebie.

W tym przykładzie pomnożymy X_1 i X_2 przez siebie. TensorFlow utworzy węzeł łączący te operacje. W naszym przykładzie nazywa się on „mnożenie”. Po wyznaczeniu grafu, silniki obliczeniowe TensorFlow pomnożą przez siebie X_1 i X_2.

Obliczenia działają w TensorFlow

Przykład TensorFlow

Na koniec uruchomimy sesję TensorFlow, która uruchomi wykres obliczeniowy z wartościami X_1 i X_2 i wydrukuje wynik mnożenia.

Zdefiniujmy węzły wejściowe X_1 i X_2. Tworząc węzeł w TensorFlow, musimy wybrać jego rodzaj. Węzły X1 i X2 będą węzłami zastępczymi. Węzły zastępcze przypisują nową wartość za każdym razem, gdy wykonujemy obliczenia. Utworzymy je jako węzeł zastępczy TF dot.

Krok 1: Zdefiniuj zmienną

X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")

Symbol zastępczy wymaga typu danych. Są to liczby, więc tf.float32 jest właściwym wyborem. Argument „name” jest opcjonalny, ale przydatny, ponieważ jest etykietą wyświetlaną w wizualizacji TensorBoard grafu. X_2 jest definiowany w ten sam sposób.

Krok 2: Zdefiniuj obliczenia

multiply = tf.multiply(X_1, X_2, name = "multiply")

Teraz możemy zdefiniować węzeł, który wykonuje operację mnożenia. W TensorFlow możemy to zrobić, tworząc węzeł tf.multiply.

Przekażemy węzły X_1 i X_2 do węzła mnożenia. Mówi tensorflowowi, aby połączył te węzły na wykresie obliczeniowym, dlatego prosimy go o pobranie wartości z x i y i pomnożenie wyniku. Nadajmy także węzłowi mnożenia nazwę multiply. Jest to cała definicja naszego prostego wykresu obliczeniowego.

Krok 3: Wykonaj operację

Aby wykonać operacje na grafie, musimy utworzyć sesję. W TensorFlow robi się to za pomocą tf.Session(). Teraz, gdy mamy sesję, możemy poprosić ją o wykonanie operacji na naszym grafie obliczeniowym, wywołując session. Aby uruchomić obliczenia, musimy użyć run.

Podczas wykonywania operacji mnożenia potrzebne są wartości węzłów X_1 i X_2, dlatego wprowadza się je w czasie wykonywania. Można to zrobić, podając parametr o nazwie feed_dict. Przekazujemy wartości 1, 2, 3 dla X_1 i 4, 5, 6 dla X_2.

Wyniki drukujemy za pomocą print(result). Powinniśmy zobaczyć 4, 10 i 18 dla 1×4, 2×5 i 3×6

X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")

multiply = tf.multiply(X_1, X_2, name = "multiply")

with tf.Session() as session:
    result = session.run(multiply, feed_dict={X_1:[1,2,3], X_2:[4,5,6]})
    print(result)
[ 4. 10. 18.]

Opcje ładowania danych do TensorFlow

Pierwszy krok przed treningiem a algorytm uczenia maszynowego polega na załadowaniu danych. Istnieją dwa popularne sposoby ładowania danych:

1. Załaduj dane do pamięci:To najprostsza metoda. Ładujesz wszystkie dane do pamięci jako pojedynczą tablicę. Piszesz po prostu Python w tym przypadku nic nie jest specyficzne dla TensorFlow.

2. Przepływ danych TensorFlowTensorFlow oferuje wbudowane API, które ładuje dane, stosuje transformacje i zasila model. Ta metoda sprawdza się szczególnie dobrze w przypadku dużych zbiorów danych. Na przykład rekordy obrazów są znane z tego, że są ogromne i nie mieszczą się w pamięci. Potok danych sam zarządza pamięcią.

Jakie rozwiązanie zastosować?

Załaduj dane do pamięci

Jeśli Twój zbiór danych nie jest zbyt duży, tj. mniejszy niż 10 gigabajtów, możesz zastosować pierwszą metodę. Dane mogą zmieścić się w pamięci. Do importowania plików CSV możesz użyć słynnej biblioteki o nazwie Pandas. Więcej o pandach dowiesz się w następnym tutorialu.

Ładowanie danych za pomocą potoku TensorFlow

Druga metoda działa najlepiej, jeśli masz duży zbiór danych. Na przykład, jeśli masz zbiór danych o wielkości 50 gigabajtów, a komputer ma tylko 16 gigabajtów pamięci, maszyna ulegnie awarii.

W takiej sytuacji należy zbudować potok TensorFlow. Potok będzie ładował dane w partiach, czyli małych fragmentach. Każdy partia będzie przesyłany do potoku i gotowy do trenowania. Zbudowanie potoku to doskonałe rozwiązanie, ponieważ pozwala na wykorzystanie obliczeń równoległych. Oznacza to, że TensorFlow będzie trenował model na wielu procesorach. Przyspiesza to obliczenia i umożliwia trenowanie większych sieci.

Krótko mówiąc: ładuj małe zestawy danych do pamięci za pomocą pandas i korzystaj z potoku TensorFlow, gdy danych jest dużo lub gdy chcesz przeprowadzić równoległe ładowanie na wielu procesorach.

Jak utworzyć potok TensorFlow

Oto kroki, aby utworzyć potok TensorFlow:

W poprzednim przykładzie ręcznie dodaliśmy trzy wartości dla X_1 i X_2. Teraz zobaczymy, jak załadować dane do TensorFlow:

Krok 1) Utwórz dane

Przede wszystkim użyjmy biblioteki numpy do wygenerowania dwóch losowych wartości.

import numpy as np
x_input = np.random.sample((1,2))
print(x_input)

[[0.8835775 0.23766977]]

Krok 2) Utwórz symbol zastępczy

Podobnie jak w poprzednim przykładzie tworzymy symbol zastępczy o nazwie X. Musimy jawnie określić kształt tensora. W takim przypadku załadujemy tablicę zawierającą tylko dwie wartości. Kształt możemy zapisać jako kształt=[1,2]

# using a placeholder
x = tf.placeholder(tf.float32, shape=[1,2], name = 'X')

Krok 3) Zdefiniuj metodę zbioru danych

Następnie musimy zdefiniować zbiór danych, w którym możemy wypełnić wartość symbolu zastępczego x. Musimy skorzystać z metody tf.data.Dataset.from_tensor_slices

dataset = tf.data.Dataset.from_tensor_slices(x)

Krok 4) Utwórz potok

W kroku czwartym musimy zainicjować potok, którym będą przepływać dane. Musimy utworzyć iterator za pomocą make_initializable_iterator. Nazywamy to iteratorem. Następnie musimy wywołać ten iterator, aby podać następną partię danych, get_next. Nazywamy ten krok get_next. Należy zauważyć, że w naszym przykładzie istnieje tylko jedna partia danych zawierająca tylko dwie wartości.

iterator = dataset.make_initializable_iterator() 
get_next = iterator.get_next()

Krok 5) Wykonaj operację

Ostatni krok jest podobny do poprzedniego przykładu. Inicjujemy sesję i uruchamiamy iterator operacji. Podajemy feed_dict wartością wygenerowaną przez tępy. Te dwie wartości wypełnią symbol zastępczy x. Następnie uruchamiamy get_next, aby wydrukować wynik.

with tf.Session() as sess:
    # feed the placeholder with data
    sess.run(iterator.initializer, feed_dict={ x: x_input }) 
    print(sess.run(get_next))
[0.8835775  0.23766978]

TensorFlow 1.x kontra TensorFlow 2.x: co się zmieniło

TensorFlow 2.0 był przełomową przeróbką interfejsu API skierowanego do użytkownika. Zrozumienie tej różnicy jest ważne, ponieważ duża część kodu instruktażowego online, w tym powyższe przykłady, jest oparta na stylu 1.x.

Pojęcie TensorFlow 1.x TensorFlow 2.x
Model wykonania Zdefiniuj wykres, a następnie go uruchom Domyślnie chętni, operacje są uruchamiane natychmiast
Podawanie danych tf.placeholder plus feed_dict Przechodzić Python wartości lub tensory bezpośrednio
Operacje bieżące tf.Session().run() Wywołanie funkcji, sesja nie jest potrzebna
Interfejs API wysokiego poziomu tf.estimator Keras, tf.keras
Optymalizacja wykresu Zawsze oparte na grafie Wybierz opcję za pomocą dekoratora @tf.function
Iterowanie zbioru danych make_initializable_iterator() Równina Python pętla for na zestawie danych

Przykład mnożenia, przepisany. Trzy kroki i sesja stają się jednym wierszem, ponieważ operacja wykonuje się w momencie jej wywołania:

import tensorflow as tf

X_1 = tf.constant([1, 2, 3], dtype=tf.float32)
X_2 = tf.constant([4, 5, 6], dtype=tf.float32)

result = tf.multiply(X_1, X_2, name="multiply")
print(result.numpy())        # [ 4. 10. 18.]

Przepisano kanał wejściowy. Nie jest wymagany żaden obiekt zastępczy ani obiekt iteratora:

import numpy as np
import tensorflow as tf

x_input = np.random.sample((1, 2))
dataset = tf.data.Dataset.from_tensor_slices(x_input)

for batch in dataset:
    print(batch.numpy())

Jeśli potrzebujesz szybkości kompilowanego grafu, umieść funkcję w @tf.function i TensorFlow tracŁączy je automatycznie. Starsze skrypty 1.x można również uruchamiać bez zmian za pomocą przestrzeni nazw tf.compat.v1, choć ta ścieżka ma charakter wyłącznie konserwacyjny i nie powinna być używana do nowych prac.

TensorFlow: najważniejsze wnioski i Code Numer Referencyjny

  • Znaczenie TensorFlow: TensorFlow to najsłynniejsza biblioteka do głębokiego uczenia się ostatnich lat. Praktyk korzystający z TensorFlow może zbudować dowolną strukturę głębokiego uczenia się, taką jak CNN, RNN lub prosta sztuczna sieć neuronowa.
  • Z TensorFlow korzystają głównie pracownicy naukowi, start-upy i duże firmy. Google używa TensorFlow w prawie wszystkich Google produkty codziennego użytku, w tym Gmail, Zdjęcie i Google Wyszukiwarka.
  • Google Zespół Brain opracował TensorFlow, aby zniwelować lukę między badaczami a twórcami produktów. W 2015 roku udostępnili TensorFlow publicznie; jego popularność szybko rośnie. Obecnie TensorFlow jest biblioteką głębokiego uczenia z największą liczbą repozytoriów w serwisie GitHub.
  • Praktycy korzystają z TensorFlow, ponieważ można go łatwo wdrożyć na dużą skalę w chmurze, w przeglądarce lub na urządzeniach mobilnych z systemem iOS i Android.

TensorFlow działa w ramach sesji. Każda sesja jest definiowana przez graf z różnymi obliczeniami. Prostym przykładem może być mnożenie przez liczbę. W TensorFlow wymagane są trzy kroki:

  1. Zdefiniuj zmienną
X_1 = tf.placeholder(tf.float32, name = "X_1")
X_2 = tf.placeholder(tf.float32, name = "X_2")
  1. Zdefiniuj obliczenia
multiply = tf.multiply(X_1, X_2, name = "multiply")
  1. Wykonaj operację
with tf.Session() as session:
    result = session.run(multiply, feed_dict={X_1: [1, 2, 3], X_2: [4, 5, 6]})
    print(result)

Jedną z powszechnych praktyk w TensorFlow jest tworzenie potoku do ładowania danych. Jeśli wykonasz te pięć kroków, będziesz w stanie załadować dane do TensorFlow:

  1. Utwórz dane
import numpy as np
x_input = np.random.sample((1,2))
print(x_input)
  1. Utwórz symbol zastępczy
x = tf.placeholder(tf.float32, shape=[1,2], name = 'X')
  1. Zdefiniuj metodę zbioru danych
dataset = tf.data.Dataset.from_tensor_slices(x)
  1. Utwórz potok
iterator = dataset.make_initializable_iterator()
get_next = iterator.get_next()
  1. Wykonaj program
with tf.Session() as sess:
    sess.run(iterator.initializer, feed_dict={x: x_input})
    print(sess.run(get_next))

FAQ

tf.placeholder należy do TensorFlow 1.x i został usunięty w wersji 2.0, która wykonuje się automatycznie i nie wymaga symboli zastępczych. Przekaż wartości bezpośrednio lub użyj tf.compat.v1, aby uruchomić starsze skrypty bez zmian.

Tensor to n-wymiarowa tablica, w której każdy element ma jeden typ danych. Skalar ma rangę 0, wektor rangę 1, macierz rangę 2, a partia obrazów zazwyczaj rangę 4.

Keras to zaawansowane API do definiowania i trenowania modeli, a TensorFlow to bazowy silnik obliczeniowy. Od wersji 2.16 TensorFlow dostarcza Keras 3, który może działać również w JAX lub Py.Torch.

TensorFlow nadaje się do zastosowań w sztucznej inteligencji w produkcji: klasyfikacji obrazów, przetwarzaniu języka naturalnego, systemach rekomendacji i dowolnym modelu, który musi zostać wdrożony na urządzeniach mobilnych, w przeglądarce lub w klastrze obsługującym.

Tak. Asystenci AI mogą przepisywać kod sesji i symboli zastępczych do równoważnych funkcji i oznaczać usunięte funkcje. Przed wycofaniem starego skryptu należy zweryfikować wynik numerycznie z oryginałem.

Podsumuj ten post następująco: