
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 ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO Cameron Rimington in ein Unternehmen mit mehr als 50 Mitarbeitern verwandelt, das die NASA, Tesla und globale Regierungsbehörden beliefert.
Verwandte Artikel


