TensorFlow.NET机器学习环境搭建(1)C#

测试环境:

vistual studio 2019

win10  64位

.net framework 4.7.2

安装参考:TensorFlow.NET

测试程序参考:TensorFlow.NET

1  在包管理工具中安装:Install-Package TensorFlow.NET

本次测试安装的版本是:0.70.2

 

2  在包管理中安装:Install-Package TensorFlow.Keras

本次测试安装的版本是:

 

3  在包管理中安装:Install-Package SciSharp.TensorFlow.Redist

本次测试安装的版本是:2.10.1.0

 

4  选择项目生成的目标平台,选Any CPU好像不行,根据window平台选择x64或者x86

 

5  输入测试代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tensorflow;

using Tensorflow.NumPy;

using static Tensorflow.Binding;

using static Tensorflow.KerasApi;

namespace TFDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            // Parameters        
            var training_steps = 1000;
            var learning_rate = 0.01f;
            var display_step = 100;

            // Sample data
            var X = np.array(3.3f, 4.4f, 5.5f, 6.71f, 6.93f, 4.168f, 9.779f, 6.182f, 7.59f, 2.167f,
                         7.042f, 10.791f, 5.313f, 7.997f, 5.654f, 9.27f, 3.1f);
            var Y = np.array(1.7f, 2.76f, 2.09f, 3.19f, 1.694f, 1.573f, 3.366f, 2.596f, 2.53f, 1.221f,
                         2.827f, 3.465f, 1.65f, 2.904f, 2.42f, 2.94f, 1.3f);
            var n_samples = X.shape[0];

            // We can set a fixed init value in order to demo
            var W = Tensorflow.Binding.tf.Variable(-0.06f, name: "weight");
            var b = Tensorflow.Binding.tf.Variable(-0.73f, name: "bias");
            var optimizer = Tensorflow.KerasApi.keras.optimizers.SGD(learning_rate);

            // Run training for the given number of steps.
            foreach (var step in Tensorflow.Binding.range(1, training_steps + 1))
            {
                // Run the optimization to update W and b values.
                // Wrap computation inside a GradientTape for automatic differentiation.
                var g = Tensorflow.Binding.tf.GradientTape();
                // Linear regression (Wx + b).
                var pred = W * X + b;
                // Mean square error.
                var loss = Tensorflow.Binding.tf.reduce_sum(Tensorflow.Binding.tf.pow(pred - Y, 2)) / (2 * n_samples);
                // should stop recording
                // Compute gradients.
                var gradients = g.gradient(loss, (W, b));

                // Update W and b following gradients.
                optimizer.apply_gradients(Tensorflow.Binding.zip(gradients, (W, b)));

                if (step % display_step == 0)
                {
                    pred = W * X + b;
                    loss = Tensorflow.Binding.tf.reduce_sum(Tensorflow.Binding.tf.pow(pred - Y, 2)) / (2 * n_samples);
                    Console.WriteLine($"step: {step}, loss: {loss.numpy()}, W: {W.numpy()}, b: {b.numpy()}");
                }
            }

            Console.ReadLine();
        }
    }
}

如果没有报错的话,运行结果如下:

 

当我把生成的dll拷贝到另外一台电脑运行时,很不幸,报了如下的错误:

未经处理的异常:  System.DllNotFoundException: 无法加载 DLL“tensorflow”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
   在 Tensorflow.c_api.TF_AllocateTensor(TF_DataType dtype, Int64[] dims, Int32 num_dims, UInt64 len)
   在 Tensorflow.c_api.TF_NewTensor(Shape shape, TF_DataType dtype, Void* data)
   在 Tensorflow.Tensor.InitTensor(Array array, Shape shape)
   在 Tensorflow.NumPy.np.array[T](T[] data)
   在 TFDemo.Program.Main(String[] args) 位置 E:\VSProject\TFDemo\Program.cs:行号 26

查阅stack overflow,找到了相应的解决方案:原来是要安装:vc_redist.x64.exe

下载链接:https://download.visualstudio.microsoft.com/download/pr/89a3b9df-4a09-492e-8474-8f92c115c51d/B1A32C71A6B7D5978904FB223763263EA5A7EB23B2C44A0D60E90D234AD99178/VC_redist.x64.exe 

stack overflow原链接如下:c# - Unable to load DLL 'tensorflow' or one of its dependencies (ML.NET) - Stack Overflow

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
你可以按照以下步骤搭建TensorFlow.NET机器学习环境: 1. 安装.NET Core SDK:TensorFlow.NET是基于.NET Core开发的,因此首先需要安装.NET Core SDK。你可以从Microsoft官方网站下载并安装适用于你的操作系统的.NET Core SDK。 2. 创建一个新的.NET Core项目:打开命令行终端或者使用Visual Studio创建一个新的.NET Core项目。你可以使用以下命令创建一个新的控制台应用程序: ``` dotnet new console -n MyTensorFlowProject cd MyTensorFlowProject ``` 3. 引入TensorFlow.NET包:在项目文件(.csproj)中添加对TensorFlow.NET包的引用。打开项目文件并添加以下内容: ```xml <ItemGroup> <PackageReference Include="TensorFlow.NET" Version="0.12.0" /> </ItemGroup> ``` 确保将版本号设置为最新版本。保存文件并关闭。 4. 安装TensorFlow运行时库:TensorFlow.NET依赖于TensorFlow C API,因此需要安装TensorFlow运行时库。你可以从TensorFlow官方网站下载并安装适用于你的操作系统的TensorFlow运行时库。 5. 编写代码:打开项目文件夹中的Program.cs文件,并使用以下代码编写你的机器学习代码: ```csharp using TensorFlow; class Program { static void Main(string[] args) { // 创建一个新的会话 using (var session = new TFSession()) { // 构建你的机器学习模型 // ... // 运行会话 var runner = session.GetRunner(); // 设置输入数据 // ... // 运行模型并获取输出 // ... } } } ``` 在代码中,你需要根据你的机器学习任务构建模型,并使用TFSession类来创建一个新的会话。然后,你可以使用会话来运行模型并获取输出。 6. 构建和运行项目:在项目文件夹中打开命令行终端,并使用以下命令构建和运行项目: ``` dotnet build dotnet run ``` 这将编译并执行你的机器学习代码。 以上是搭建TensorFlow.NET机器学习环境的基本步骤。你可以根据你的具体需求进一步扩展和优化你的机器学习代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zxy2847225301

测试使用

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值