
TensorFlow .NET (Funktionsweise für Entwickler)
Maschinelles Lernen (ML) hat verschiedene Branchen revolutioniert, von der Gesundheitsversorgung bis zur Finanzwelt, indem es intelligentes Entscheidungsmanagement und Automatisierung ermöglicht. TensorFlow, das Open-Source-ML- und Deep-Learning-Framework von Google, steht an der Spitze dieser Revolution. Mit TensorFlow.NET können .NET-Entwickler die Leistungsfähigkeit von TensorFlow innerhalb des C#-Umfelds nutzen. In diesem Artikel werden wir TensorFlow.NET sowie seine Funktionen, Vorteile und praktischen Anwendungen in der C#-Entwicklung untersuchen. Außerdem werden wir eine PDF-Erstellung-Bibliothek namens IronPDF von Iron Software mit einem praktischen Beispiel kennenlernen.
TensorFlow.NET verstehen
TensorFlow.NET ist eine .NET-Anbindung für TensorFlow, die es Entwicklern ermöglicht, TensorFlow-Funktionalitäten direkt in C#- und .NET-Anwendungs-Ebenen zu nutzen. Entwickelt von der Community und gepflegt von der SciSharp-Organisation bietet TensorFlow.NET eine nahtlose Integration der Fähigkeiten von TensorFlows maschinellem Lernen und neuronalen Netzen mit der Vielseitigkeit der .NET-Plattform. Es ermöglicht C#-Entwicklern, neuronale Netzwerke zu erstellen, Modelle zu trainieren und ML-Modelle mithilfe der umfassenden System-APIs und -Tools von TensorFlow bereitzustellen.
Schlüsselmerkmale von TensorFlow.NET
- TensorFlow-Kompatibilität:
TensorFlow.NETbietet volle Kompatibilität mit den APIs und Operationen von TensorFlow, einschließlich der Tensor-Manipulation, der neuronalen Netzschichten, der Verlustfunktionen, der Optimierer und der Werkzeuge zur Datenvorverarbeitung und -bewertung. - Hohe Leistung:
TensorFlow.NETnutzt TensorFlows effiziente Ausführungsmaschine für Rechenstrukturen und optimierte Kerne zur Bereitstellung leistungsfähiger maschineller Lerninferenz und -training auf CPUs und GPUs. - Einfache Integration:
TensorFlow.NETintegriert sich nahtlos in bestehende .NET-Anwendungen und -Bibliotheken, sodass Entwickler die Fähigkeiten von TensorFlow nutzen können, ohne die vertraute C#-Entwicklungsumgebung zu verlassen. - Modellportabilität:
TensorFlow.NETermöglicht Entwicklern, vortrainierte TensorFlow-Modelle zu importieren und trainierte Modelle für die Inferenz in anderen TensorFlow-basierten Umgebungen wie Python oder mobilen Geräten zu exportieren. - Flexibilität und Erweiterbarkeit:
TensorFlow.NETbietet Flexibilität für die Anpassung und Erweiterung von maschinellen Lernmodellen unter Verwendung von C#-Sprachmerkmalen, wie LINQ (Language Integrated Query) zur Datenmanipulation und funktionale Programmierparadigmen zur Modellkomposition. - Community-Support und Dokumentation:
TensorFlow.NETprofitiert von einer aktiven Community von Mitwirkenden, die Dokumentationen, Tutorials und Beispiele zur Verfügung stellen, um Entwicklern den Einstieg in das maschinelle Lernen in der C#-Welt mit TensorFlow zu erleichtern.
Praktische Beispiele mit TensorFlow.NET
Lassen Sie uns einige praktische Szenarien erkunden, in denen TensorFlow.NET verwendet werden kann, um maschinelle Lernmodelle in C# zu erstellen und bereitzustellen:
-
Laden und Verwenden vortrainierter Modelle:
// 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);' Load a pre-trained TensorFlow model Dim model = TensorFlowModel.LoadModel("model.pb") ' Perform inference on input data Dim input = New Single(, ) { { 1.0F, 2.0F, 3.0F } } Dim output = model.Predict(input) -
Schulung benutzerdefinierter Modelle:
// 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);' Create a neural network model using TensorFlow.NET APIs Dim input As New Input(Shape.Scalar) Dim output = (New Dense(1, Activation.ReLU)).Forward(input) ' Compile the model with loss function and optimizer algorithms Dim model As 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) -
Evaluierung und Implementierung:
// 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");' Evaluate the trained model on test data Dim evaluation = model.Evaluate(x_test, y_test) ' Export the trained model for deployment model.SaveModel("trained_model.pb")
Weitere Beispiele für TensorFlow finden Sie auf der TensorFlow.NET-Beispielseite.
// 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);
}
}
}' Use static TensorFlow
Imports Tensorflow.Binding
Namespace IronPdfDemos
Public Class TensorFlow
Public Shared Sub Execute()
' Create a TensorFlow constant
Dim hello = tf.constant("Hello, TensorFlow!")
Console.WriteLine(hello)
End Sub
End Class
End NamespaceBeispiel der TensorFlow- Ausgabe

Vorteile der Verwendung von TensorFlow.NET
- Nahtlose Integration:
TensorFlow.NETbringt die Leistungsfähigkeit von TensorFlow in das .NET-Ökosystem, sodass C#-Entwickler modernste maschinelle Lerntechniken und -algorithmen in ihren Anwendungen nutzen können. - Leistung und Skalierbarkeit:
TensorFlow.NETnutzt die optimierte Ausführungsmaschine von TensorFlow, um leistungsstarke maschinelle Lernberechnungen bereitzustellen, was es geeignet macht, große Datensätze und komplexe Modelle zu verarbeiten. - Vertraute Entwicklungsumgebung: Die
TensorFlow.NET-API ermöglicht es Entwicklern, maschinelle Lernmodelle mit vertrauten C#-Sprachmerkmalen und Entwicklungswerkzeugen zu erstellen und bereitzustellen, wodurch die Lernkurve für die Einführung von maschinellem Lernen in C#-Anwendungen reduziert wird. - Interoperabilität und Portabilität:
TensorFlow.NETerleichtert die Interoperabilität mit anderen TensorFlow-basierten Umgebungen, wodurch eine nahtlose Integration von C#-basierten maschinellen Lernmodellen mit Python, TensorFlow Serving und TensorFlow Lite ermöglicht wird. - Community-getriebene Entwicklung:
TensorFlow.NETprofitiert von einer aktiven Community von Mitwirkenden und Nutzern, die Unterstützung, Feedback und Beiträge zum Projekt leisten, um dessen kontinuierliches Wachstum und Verbesserung sicherzustellen.
TensorFlow.NET Lizenz
Es ist ein Open-Source-Paket unter Apache-Lizenz, das frei verwendet werden kann. Weitere Informationen zur Lizenzierung finden Sie auf der TensorFlow.NET-Lizenzseite.
Einführung in IronPDF

IronPDF ist eine leistungsstarke C# PDF-Bibliothek, die es Entwicklern ermöglicht, PDFs direkt aus HTML, CSS, Bildern und JavaScript-Eingaben zu erstellen, zu bearbeiten und zu signieren. Es ist eine handelsübliche Lösung mit hoher Leistung und geringem Speicherbedarf. Hier sind einige wichtige Funktionen:
- HTML zu PDF Konvertierung:
IronPDFkann HTML-Dateien, HTML-Zeichenfolgen und URLs in PDFs konvertieren. Zum Beispiel können Sie eine Webseite mit dem Chrome-PDF-Renderer als PDF darstellen. - Plattformübergreifende Unterstützung:
IronPDFfunktioniert auf verschiedenen .NET-Plattformen, einschließlich .NET Core, .NET Standard und .NET Framework. Es ist mit Windows, Linux und macOS kompatibel. - Bearbeiten und Signieren: Sie können Eigenschaften festlegen, Sicherheitsmaßnahmen (Passwörter und Berechtigungen) hinzufügen und sogar digitale Signaturen auf Ihre PDFs anwenden.
- Seitenvorlagen und Einstellungen: Passen Sie Ihre PDFs individuell an, indem Sie Kopf- und Fußzeilen sowie Seitenzahlen hinzufügen und die Ränder anpassen.
IronPDFunterstützt auch responsive Layouts und benutzerdefinierte Papiergrößen. - Standardkonformität:
IronPDFhält PDF-Standards wie PDF/A und PDF/UA ein. Es unterstützt die UTF-8-Zeichenkodierung und verarbeitet Assets wie Bilder, CSS und Schriftarten.
Erzeugen von PDF-Dokumenten mit TensorFlow.NET und IronPDF
Erstellen Sie zuerst ein Visual Studio-Projekt und wählen Sie die folgende Konsolenanwendungsvorlage aus.

Geben Sie den Projektnamen und den Speicherort ein.

Wählen Sie im nächsten Schritt die erforderliche .NET-Version aus und klicken Sie auf die Schaltfläche Erstellen.
Installieren Sie IronPDF aus dem NuGet-Paket aus dem Visual Studio-Paket-Manager.

Installieren Sie die Pakete TensorFlow.NET und TensorFlow.Keras, ein unabhängiges Paket, das verwendet wird, um Modelle auszuführen.

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");
}
}
}Imports IronPdf
Imports Tensorflow.Binding
Namespace IronPdfDemos
Public Class Program
Public Shared Sub Main()
' Instantiate Cache and ChromePdfRenderer
Dim renderer = New ChromePdfRenderer()
' Prepare HTML content for the PDF
Dim 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>"
Dim a = tf.constant(5)
Dim b = tf.constant(6)
Dim c = tf.constant(7)
' Perform various tensor operations
content &= "<h2>Various Tensor Operations</h2>"
Dim add = tf.add(a, b)
Dim [sub] = tf.subtract(a, b)
Dim mul = tf.multiply(a, b)
Dim 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
Dim mean = tf.reduce_mean(tf.constant( { a, b, c }))
Dim sum = tf.reduce_sum(tf.constant( { a, b, c }))
content &= "<h2>Additional Operations</h2>"
content &= $"<p>mean = {mean.numpy()}</p>"
content &= $"<p>sum = {sum.numpy()}</p>"
' Perform matrix multiplication
Dim matrix1 = tf.constant(New Single(, ) {
{ 1, 2 },
{ 3, 4 }
})
Dim matrix2 = tf.constant(New Single(, ) {
{ 5, 6 },
{ 7, 8 }
})
Dim 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
Dim pdf = renderer.RenderHtmlAsPdf(content)
' Save PDF to file
pdf.SaveAs("tensorflow.pdf")
End Sub
End Class
End NamespaceCode-Erklärung
Lassen Sie uns den Codeschnipsel aufschlüsseln:
-
Importanweisungen:
Der Code beginnt mit dem Import der notwendigen Bibliotheken. Insbesondere:
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.Imports IronPdf ' This imports the IronPDF package, which is used for working with PDF files. Imports Tensorflow.Binding ' This imports the TensorFlow library, specifically the .NET standard binding. -
Eifrige Ausführung:
Die Zeile
tf.enable_eager_execution();ermöglicht den Eager Execution-Modus von TensorFlow. Im Eager-Execution-Modus werden Operationen sofort ausgewertet, was Debugging und Interaktion mit Tensors erleichtert. -
Tensorkonstanten definieren:
Der Code definiert drei Tensor-Konstanten:
a,bundc. Diese werden mit den Werten 5, 6 bzw. 7 initialisiert. -
Verschiedene Tensoroperationen:
Die folgenden Tensor-Operationen werden durchgeführt:
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.Dim add = tf.add(a, b) ' Adds a and b. Dim [sub] = tf.subtract(a, b) ' Subtracts b from a. Dim mul = tf.multiply(a, b) ' Multiplies a and b. Dim div = tf.divide(a, b) ' Divides a by b. -
Zugriff auf Tensorwerte:
Die Ergebnisse der Tensor-Operationen sind im HTML-Inhalt enthalten:
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>";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>" -
Zusätzliche Operationen:
Der Code berechnet den Mittelwert und die Summe der Konstanten
[a, b, c]. -
Matrizenmultiplikationen:
Es führt eine Matrixmultiplikation zwischen
matrix1undmatrix2durch und zeigt das Ergebnis an. -
PDF-Generierung:
ChromePdfRendererundRenderHtmlAsPdfvonIronPDFwerden verwendet, um den HTML-String in ein PDF-Dokument zu rendern.
Ausgabe

IronPDF-Lizenz
IronPDF benötigt eine Lizenz zum Ausführen. Weitere Informationen zur Lizenzierung finden Sie auf der IronPDF-Lizenzierungsseite. Platzieren Sie den Schlüssel in der appSettings.json-Datei wie unten gezeigt.
{
"IronPdf.License.LicenseKey": "The Key Here"
}
Abschluss
Abschließend ermöglicht TensorFlow.NET C#-Entwicklern, die Welt des maschinellen Lernens und der künstlichen Intelligenz mit der Vielseitigkeit und Produktivität des .NET-Ökosystems zu erkunden. Egal, ob Sie intelligente Anwendungen, Vorhersage-Analyse-Tools oder automatisierte Entscheidungsfindungssysteme erstellen, bietet TensorFlow.NET ein leistungsstarkes und flexibles Framework, um das Potenzial des maschinellen Lernens in C# zu entfalten. Zusammen mit der IronPDF-Bibliothek von Iron Software können Entwickler fortgeschrittene Fähigkeiten erwerben, um moderne Anwendungen zu entwickeln.

Jacob Mellor is Chief Technology Officer at Iron Software and a visionary engineer pioneering C# PDF technology. As the original developer behind Iron Software's core codebase, he has shaped the company's product architecture since its inception, transforming it alongside CEO Cameron Rimington into a 50+ person company serving NASA, Tesla, and global government agencies.
Related Articles


