c#调用tensorflow的例子

一个很简单的例子,使用c#调用tensorflow。

1.安装tensorflow

首先需要安装windows 版本的tensowflow,使用64位的python3.5,如果没有安装,需要首先安装python3.5

然后以管理员方式进入命令行,运行

pip install tensorflow

2.c#调用代码

  • 初始化cle和python35

        

      StarCoreFactory starcore = StarCoreFactory.GetFactory();
      StarServiceClass Service = starcore._InitSimple("test", "123", 0, 0, null);
      StarSrvGroupClass SrvGroup = (StarSrvGroupClass)Service._Get("_ServiceGroup");
      //--init python raw interface
      SrvGroup._InitRaw("python35", Service);
      StarObjectClass python = Service._ImportRawContext("python", "", false, "");

  •         调用tensorflow
     //--import tensorflow as tf
     python._Call("eval", "import tensorflow as tf");   
     StarObjectClass tf = python._GetObject("tf");
     Console.WriteLine(tf);
     //-- a = tf.add(2,5)
     StarObjectClass a = (StarObjectClass)tf._Call("add", 2, 5);
     //-- b = tf.multiply(a,5)
     StarObjectClass b = (StarObjectClass)tf._Call("multiply", a, 3);
     //-- c = tf.constant(2,name="Node_c")
     StarObjectClass c = (StarObjectClass)tf._Call("constant", 2, SrvGroup._NewParaPkg("name", "Node_c")._AsDict(true));
     Console.WriteLine(c);
     //-- sess = tf.Session()
     StarObjectClass Session = (StarObjectClass)tf._Get("Session");
     StarObjectClass sess = Session._New();

     //-- result = sess.run(b,feed_dict={a:25});
     StarParaPkgClass pkg = SrvGroup._NewParaPkg(a, 25)._AsDict(true);
     Object result = sess._Call("run", b, SrvGroup._NewParaPkg("feed_dict", pkg)._AsDict(true));
     Console.WriteLine(result);

  •         如果使用dynamic关键字,上述代码简化如下:
     //--import tensorflow as tf
     python.eval("import tensorflow as tf");
     dynamic tf = python.tf;
     //-- a = tf.add(2,5)
     dynamic a = tf.add(2, 5);
     //-- b = tf.multiply(a,5)
     dynamic b = tf.multiply(a, 3);
     //-- c = tf.constant(2,name="Node_c")
     dynamic c = tf.constant(2, SrvGroup._NewParaPkg("name", "Node_c")._AsDict(true));
     //-- sess = tf.Session()
     dynamic Session = tf.Session;
     dynamic sess = Session._New();

     //-- result = sess.run(b,feed_dict={a:25});
     var pkg = SrvGroup._NewParaPkg(a, 25)._AsDict(true);
     dynamic result = sess.run(b, SrvGroup._NewParaPkg("feed_dict", pkg)._AsDict(true));
     Console.WriteLine(result);



3. 例子下载




  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Unity可以通过TensorFlowSharp库来调用TensorFlowTensorFlowSharp是一个在Unity中使用TensorFlow的开源项目。它提供了一个C#接口,可以在Unity中加载和运行TensorFlow模型。 要在Unity中使用TensorFlowSharp,首先需要将TensorFlowSharp库添加到Unity项目中。然后,可以使用C#代码加载和运行TensorFlow模型。以下是一个简单的示例代码: ```csharp using UnityEngine; using TensorFlow; public class TensorFlowExample : MonoBehaviour { // TensorFlow模型文件路径 public string modelFilePath; // 输入数据 public float[] inputData; // 输出节点名称 public string outputNodeName; void Start() { // 创建TensorFlow会话 TFSession session = new TFSession(); // 加载模型 TFGraph graph = new TFGraph(); graph.Import(File.ReadAllBytes(modelFilePath)); // 创建输入张量 TFTensor inputTensor = TFTensor.FromBuffer(new TFShape(1, inputData.Length), inputData, 0, inputData.Length); // 运行模型 TFSession.Runner runner = session.GetRunner(); runner.AddInput(graph["input"], inputTensor); runner.Fetch(graph[outputNodeName]); TFTensor[] outputTensors = runner.Run(); // 获取输出张量的值 float[] outputData = (float[])outputTensors.GetValue(); // 处理输出数据 // ... // 释放资源 inputTensor.Dispose(); foreach (var tensor in outputTensors) { tensor.Dispose(); } session.Dispose(); graph.Dispose(); } } ``` 在上面的示例中,首先创建了一个TensorFlow会话和一个TFGraph对象。然后,通过调用`Import`方法加载TensorFlow模型文件。接下来,创建输入张量并将其传递给模型的输入节点。最后,通过调用`Run`方法运行模型,并获取输出张量的值。 请注意,以上只是一个简单的示例,实际使用中可能需要根据具体情况进行适当的修改和扩展。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值