IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

TensorFlow .NET (jak to działa dla programistów)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 21 kwietnia 2026

Uczenie maszynowe (ML) zrewolucjonizowało różne branże, od opieki zdrowotnej po finanse, umożliwiając inteligentne podejmowanie decyzji i automatyzację. TensorFlow, otwarta platforma Google do uczenia maszynowego i głębokiego uczenia się, znajduje się w czołówce tej rewolucji. Dzięki TensorFlow.NET, deweloperzy .NET mogą korzystać z mocy TensorFlow w środowisku C#. W tym artykule zbadamy TensorFlow.NET, jego funkcje, korzyści i praktyczne zastosowania w rozwoju C#. Poznamy także bibliotekę do generowania PDF o nazwie IronPDF od Iron Software na podstawie praktycznego przykładu.

Zrozumienie TensorFlow.NET

TensorFlow.NET to wiązanie .NET dla TensorFlow, które pozwala deweloperom na korzystanie z funkcjonalności TensorFlow bezpośrednio w warstwach aplikacji C# i .NET. Opracowany przez społeczność i utrzymywany przez organizację SciSharp, TensorFlow.NET zapewnia płynną integrację możliwości maszynowego uczenia się oraz sieci neuronowych TensorFlow z wszechstronnością platformy .NET. Umożliwia programistom C# tworzenie sieci neuronowych, trenowanie modeli oraz wdrażanie modeli ML przy użyciu rozbudowanych interfejsów API i narzędzi systemu TensorFlow.

Najważniejsze cechy TensorFlow.NET

  1. Zgodność z TensorFlow: TensorFlow.NET zapewnia pełną zgodność z API i operacjami TensorFlow, w tym manipulacją tensorem, warstwami sieci neuronowych, funkcjami strat, optymalizatorami i narzędziami do wstępnego przetwarzania danych i ewaluacji.
  2. Wysoka wydajność: TensorFlow.NET wykorzystuje wydajny silnik wykonawczy TensorFlow oraz zoptymalizowane jądra, aby dostarczyć wysokowydajność wnioskowania i szkolenia maszynowego na CPU i GPU.
  3. Łatwa integracja: TensorFlow.NET płynnie integruje się z istniejącymi aplikacjami i bibliotekami .NET, umożliwiając deweloperom wykorzystanie możliwości TensorFlow bez opuszczania znajomego środowiska rozwoju C#.
  4. Przenośność modeli: TensorFlow.NET umożliwia deweloperom importowanie przetrenowanych modeli TensorFlow i eksportowanie przeszkolonych modeli do wnioskowania w innych środowiskach bazujących na TensorFlow, takich jak Python lub urządzenia mobilne.
  5. Elastyczność i rozszerzalność: TensorFlow.NET zapewnia elastyczność w dostosowywaniu i rozszerzaniu modeli maszynowego uczenia się poprzez wykorzystanie funkcji języka C#, takich jak LINQ (językowa zintegrowana kwerenda) do manipulacji danymi i paradygmaty programowania funkcyjnego do tworzenia modeli.
  6. Wsparcie społeczności i dokumentacja: TensorFlow.NET czerpie korzyści z aktywnej społeczności współtwórców, którzy dostarczają dokumentacji, samouczków i przykładów, aby pomóc deweloperom rozpocząć pracę z maszynowym uczeniem się w świecie C# za pomocą TensorFlow.

Praktyczne przykłady z wykorzystaniem TensorFlow.NET

Przyjrzyjmy się kilku praktycznym scenariuszom, w których TensorFlow.NET może być używany do budowy i wdrażania modeli maszynowego uczenia się w C#:

  1. Ładowanie i używanie wstępnie wytrenowanych modeli:

    // Load a pre-trained TensorFlow model
    var model = TensorFlowModel.LoadModel("model.pb");
    // Perform inference on input data
    var input = new float[,] { { 1.0f, 2.0f, 3.0f } };
    var output = model.Predict(input);
  2. Trenowanie modeli niestandardowych:

    // Create a neural network model using TensorFlow.NET APIs
    var input = new Input(Shape.Scalar);
    var output = new Dense(1, Activation.ReLU).Forward(input);
    // Compile the model with loss function and optimizer algorithms
    var model = new Model(input, output);
    model.Compile(optimizer: new SGD(), loss: Losses.MeanSquaredError);
    // Train the model with training data
    model.Fit(x_train, y_train, epochs: 10, batchSize: 32);
  3. Ocena i wdrożenie:

    // Evaluate the trained model on test data
    var evaluation = model.Evaluate(x_test, y_test);
    // Export the trained model for deployment
    model.SaveModel("trained_model.pb");

Więcej przykładów TensorFlow można znaleźć na stronie Przykłady TensorFlow.NET.

// Use static TensorFlow
using static Tensorflow.Binding;

namespace IronPdfDemos
{
    public class TensorFlow
    {
        public static void Execute()
        {
            // Create a TensorFlow constant
            var hello = tf.constant("Hello, TensorFlow!");
            Console.WriteLine(hello);
        }
    }
}

Przykładowy wynik Hello TensorFlow

TensorFlow .NET (Jak działa dla deweloperów): Rysunek 1 - Wynik aplikacji konsolowej

Korzyści wynikające z używania TensorFlow.NET

  1. Płynna integracja: TensorFlow.NET wprowadza moc TensorFlow do ekosystemu .NET, umożliwiając deweloperom C# wykorzystywanie najnowocześniejszych technik i algorytmów maszynowego uczenia się w swoich aplikacjach.
  2. Wydajność i skalowalność: TensorFlow.NET wykorzystuje zoptymalizowany silnik wykonawczy TensorFlow, aby dostarczać wydajnych obliczeń maszynowego uczenia się, co sprawia, że jest odpowiedni do obsługi dużych zbiorów danych i złożonych modeli.
  3. Znajome środowisko deweloperskie: TensorFlow.NET API pozwala deweloperom na tworzenie i wdrażanie modeli maszynowego uczenia się przy użyciu znajomych funkcji języka C# i narzędzi deweloperskich, co zmniejsza krzywą uczenia się przy wdrażaniu maszynowego uczenia się w aplikacjach C#.
  4. Interoperacyjność i przenośność: TensorFlow.NET ułatwia współdziałanie z innymi środowiskami bazującymi na TensorFlow, umożliwiając płynną integrację modeli maszynowego uczenia się bazujących na C# z Python, TensorFlow Serving i TensorFlow Lite.
  5. Rozwój kierowany przez społeczność: TensorFlow.NET korzysta z aktywnej społeczności współtwórców i użytkowników, którzy dostarczają wsparcia, opinii i wkładów do projektu, zapewniając jego nieustanny rozwój i doskonalenie.

Licencja TensorFlow.NET

Jest to pakiet typu open source na licencji Apache, z którego można korzystać bezpłatnie. Więcej informacji na temat licencji można znaleźć na stronie Licencja TensorFlow.NET.

Przedstawiamy IronPDF

TensorFlow .NET (Jak działa dla deweloperów): Rysunek 2 - IronPDF

IronPDF to potężna biblioteka PDF w C#, która pozwala deweloperom tworzyć, edytować i podpisywać dokumenty PDF bezpośrednio z HTML, CSS, obrazów i wejść JavaScript. Jest to rozwiązanie klasy komercyjnej o wysokiej wydajności i niewielkim zużyciu pamięci. Oto kilka kluczowych funkcji:

  1. Konwersja HTML do PDF: IronPDF może konwertować pliki HTML, ciągi HTML i adresy URL do PDF. Na przykład można wyrenderować stronę internetową jako plik PDF za pomocą renderera PDF przeglądarki Chrome.
  2. Wsparcie dla różnych platform: IronPDF działa na różnych platformach .NET, w tym .NET Core, .NET Standard i .NET Framework. Jest kompatybilny z systemami Windows, Linux i macOS.
  3. Edycja i podpisywanie: Możesz ustawiać właściwości, dodawać zabezpieczenia (hasła i uprawnienia), a nawet stosować podpisy cyfrowe w swoich plikach PDF.
  4. Szablony stron i ustawienia: Dostosuj swoje pliki PDF, dodając nagłówki, stopki i numery stron oraz dostosowując marginesy. IronPDF obsługuje także responsywne układy i niestandardowe rozmiary papieru.
  5. Zgodność ze standardami: IronPDF przestrzega standardów PDF, takich jak PDF/A i PDF/UA. Obsługuje kodowanie znaków UTF-8 oraz pliki takie jak obrazy, CSS i czcionki.

Generowanie dokumentów PDF przy użyciu TensorFlow.NET i IronPDF

Najpierw utwórz projekt w Visual Studio i wybierz poniższy szablon aplikacji konsolowej.

TensorFlow .NET (Jak działa dla deweloperów): Rysunek 3 - Projekt w Visual Studio

Podaj nazwę projektu i lokalizację.

TensorFlow .NET (Jak działa dla deweloperów): Rysunek 4 - Konfiguracja projektu

W następnym kroku wybierz wymaganą wersję .NET i kliknij przycisk Utwórz.

Zainstaluj IronPDF z pakietu NuGet za pomocą Menedżera pakietów Visual Studio.

TensorFlow .NET (Jak działa dla deweloperów): Rysunek 5 - TensorFlow.NET

Zainstaluj pakiety TensorFlow.NET i TensorFlow.Keras, niezależny pakiet używany do uruchamiania modeli.

TensorFlow .NET (Jak działa dla deweloperów): Rysunek 6 - Instalacja pakietu TensorFlow.Keras

using IronPdf;
using static Tensorflow.Binding;

namespace IronPdfDemos
{
    public class Program
    {
        public static void Main()
        {
            // Instantiate Cache and ChromePdfRenderer
            var renderer = new ChromePdfRenderer();

            // Prepare HTML content for the PDF
            var content = "<h1>Demonstrate TensorFlow with IronPDF</h1>";
            content += "<h2>Enable Eager Execution</h2>";
            content += "<p>tf.enable_eager_execution();</p>";

            // Enable eager execution mode in TensorFlow
            tf.enable_eager_execution();

            // Define tensor constants
            content += "<h2>Define Tensor Constants</h2>";
            var a = tf.constant(5);
            var b = tf.constant(6);
            var c = tf.constant(7);

            // Perform various tensor operations
            content += "<h2>Various Tensor Operations</h2>";
            var add = tf.add(a, b);
            var sub = tf.subtract(a, b);
            var mul = tf.multiply(a, b);
            var div = tf.divide(a, b);

            content += $"<p>var add = tf.add(a, b);</p>";
            content += $"<p>var sub = tf.subtract(a, b);</p>";
            content += $"<p>var mul = tf.multiply(a, b);</p>";
            content += $"<p>var div = tf.divide(a, b);</p>";

            // Output tensor values to HTML content
            content += "<h2>Access Tensor Values</h2>";
            content += $"<p>{a.numpy()} + {b.numpy()} = {add.numpy()}</p>";
            content += $"<p>{a.numpy()} - {b.numpy()} = {sub.numpy()}</p>";
            content += $"<p>{a.numpy()} * {b.numpy()} = {mul.numpy()}</p>";
            content += $"<p>{a.numpy()} / {b.numpy()} = {div.numpy()}</p>";

            // Perform additional operations
            var mean = tf.reduce_mean(tf.constant(new[] { a, b, c }));
            var sum = tf.reduce_sum(tf.constant(new[] { a, b, c }));

            content += "<h2>Additional Operations</h2>";
            content += $"<p>mean = {mean.numpy()}</p>";
            content += $"<p>sum = {sum.numpy()}</p>";

            // Perform matrix multiplication
            var matrix1 = tf.constant(new float[,] { { 1, 2 }, { 3, 4 } });
            var matrix2 = tf.constant(new float[,] { { 5, 6 }, { 7, 8 } });
            var product = tf.matmul(matrix1, matrix2);

            content += "<h2>Matrix Multiplications</h2>";
            content += "<p>Multiplication Result:</p>";
            content += $"<p>product = {product.numpy()}</p>";

            // Render HTML content to PDF
            var pdf = renderer.RenderHtmlAsPdf(content);
            // Save PDF to file
            pdf.SaveAs("tensorflow.pdf");
        }
    }
}

Wyjaśnienie kodu

Przeanalizujmy fragment kodu:

  1. Instrukcje importu:

    Kod rozpoczyna się od zaimportowania niezbędnych bibliotek. W szczególności:

    using IronPdf; // This imports the IronPDF package, which is used for working with PDF files.
    using static Tensorflow.Binding; // This imports the TensorFlow library, specifically the .NET standard binding.
  2. Wykonanie z wyprzedzeniem:

    Linia tf.enable_eager_execution(); umożliwia tryb natychmiastowego wykonania TensorFlow. W trybie wykonania z wyprzedzeniem operacje są oceniane natychmiast, co ułatwia debugowanie i interakcję z tensorami.

  3. Zdefiniuj stałe tensorowe:

    Kod definiuje trzy stałe tensorów: a, b i c. Są one inicjowane odpowiednio wartościami 5, 6 i 7.

  4. Różne operacje na tensorach:

    Wykonuje się następujące operacje tensorowe:

    var add = tf.add(a, b); // Adds a and b.
    var sub = tf.subtract(a, b); // Subtracts b from a.
    var mul = tf.multiply(a, b); // Multiplies a and b.
    var div = tf.divide(a, b); // Divides a by b.
  5. Dostęp do wartości tensorów:

    Wyniki operacji tensorowych są zawarte w treści HTML:

    content += $"<p>{a.numpy()} + {b.numpy()} = {add.numpy()}</p>";
    content += $"<p>{a.numpy()} - {b.numpy()} = {sub.numpy()}</p>";
    content += $"<p>{a.numpy()} * {b.numpy()} = {mul.numpy()}</p>";
    content += $"<p>{a.numpy()} / {b.numpy()} = {div.numpy()}</p>";
  6. Dodatkowe operacje:

    Kod oblicza średnią i sumę stałych [a, b, c].

  7. Mnożenie macierzy:

    Dokonuje mnożenia macierzy pomiędzy matrix1 i matrix2 i wyświetla wynik.

  8. Generowanie plików PDF:

    ChromePdfRenderer i RenderHtmlAsPdf z IronPDF są używane do renderowania ciągu HTML w dokumencie PDF.

Wynik

TensorFlow .NET (Jak działa dla deweloperów): Rysunek 7 - Wynik PDF

Licencja IronPDF

IronPDF wymaga licencji do działania. Więcej informacji na temat licencji można znaleźć na stronie Licencjonowanie IronPDF. Umieść klucz w pliku appSettings.json jak pokazano poniżej.

{
  "IronPdf.License.LicenseKey": "The Key Here"
}
JSON

Wnioski

Podsumowując, TensorFlow.NET umożliwia deweloperom C# eksplorację świata maszynowego uczenia się i sztucznej inteligencji z wszechstronnością i produktywnością ekosystemu .NET. Niezależnie od tego, czy tworzysz inteligentne aplikacje, narzędzia do analiz predykcyjnych, czy systemy automatycznego podejmowania decyzji, TensorFlow.NET zapewnia potężny i elastyczny framework do uwalniania potencjału maszynowego uczenia się w C#. Razem z biblioteką IronPDF od Iron Software, deweloperzy mogą zdobyć zaawansowane umiejętności do tworzenia nowoczesnych aplikacji.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta