TensorFlowSharp入门使用C#编写TensorFlow人工智能应用

TensorFlowSharp入门使用C#编写TensorFlow人工智能应用学习。

TensorFlow简单介绍

TensorFlow 是谷歌的第二代机器学习系统,按照谷歌所说,在某些基准测试中,TensorFlow的表现比第一代的DistBelief快了2倍。

TensorFlow 内建深度学习的扩展支持,任何能够用计算流图形来表达的计算,都可以使用TensorFlow。任何基于梯度的机器学习算法都能够受益于TensorFlow的自动分化(auto-differentiation)。通过灵活的Python接口,要在TensorFlow中表达想法也会很容易。

TensorFlow 对于实际的产品也是很有意义的。将思路从桌面GPU训练无缝搬迁到手机中运行。

示例Python代码:

import tensorflow as tf

import numpy as np


# Create 100 phony x, y data points in NumPy, y = x * 0.1 + 0.3

x_data = np.random.rand(100).astype(np.float32)

y_data = x_data * 0.1 + 0.3


# Try to find values for W and b that compute y_data = W * x_data + b

# (We know that W should be 0.1 and b 0.3, but TensorFlow will

# figure that out for us.)

W = tf.Variable(tf.random_uniform([1], -1.0, 1.0))

b = tf.Variable(tf.zeros([1]))

y = W * x_data + b


# Minimize the mean squared errors.

loss = tf.reduce_mean(tf.square(y - y_data))

optimizer = tf.train.GradientDescentOptimizer(0.5)

train = optimizer.minimize(loss)


# Before starting, initialize the variables.  We will 'run' this first.

init = tf.global_variables_initializer()


# Launch the graph.

sess = tf.Session()

sess.run(init)


# Fit the line.

for step in range(201):

    sess.run(train)

    if step % 20 == 0:

        print(step, sess.run(W), sess.run(b))


# Learns best fit is W: [0.1], b: [0.3]


 

使用TensorFlowSharp 

GitHub:https://github.com/migueldeicaza/TensorFlowSharp

官方源码库,该项目支持跨平台,使用Mono。

可以使用NuGet 安装TensorFlowSharp,如下:

Install-Package TensorFlowSharp

 

编写简单应用

使用VS2017新建一个.NET Framework 控制台应用 tensorflowdemo,接着添加TensorFlowSharp 引用。

TensorFlowSharp 包比较大,需要耐心等待。

然后在项目属性中生成->平台目标 改为 x64

打开Program.cs 写入如下代码:

static void Main(string[] args)

        {

            using (var session = new TFSession())

            {

                var graph = session.Graph;

                Console.WriteLine(TFCore.Version);

                var a = graph.Const(2);

                var b = graph.Const(3);

                Console.WriteLine("a=2 b=3");


                // 两常量加

                var addingResults = session.GetRunner().Run(graph.Add(a, b));

                var addingResultValue = addingResults[0].GetValue();

                Console.WriteLine("a+b={0}", addingResultValue);


                // 两常量乘

                var multiplyResults = session.GetRunner().Run(graph.Mul(a, b));

                var multiplyResultValue = mul

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
好的,以下是一个简单的猜数字游戏,使用C#窗体应用程序编写: ```C# using System; using System.Windows.Forms; namespace GuessNumberGame { public partial class MainForm : Form { private int numberToGuess; private int numberOfGuesses; public MainForm() { InitializeComponent(); StartNewGame(); } private void StartNewGame() { Random random = new Random(); numberToGuess = random.Next(1, 101); numberOfGuesses = 0; guessButton.Enabled = true; guessTextBox.Enabled = true; guessTextBox.Text = ""; guessResultLabel.Text = ""; numberOfGuessesLabel.Text = "Number of Guesses: 0"; } private void guessButton_Click(object sender, EventArgs e) { int guess; if (int.TryParse(guessTextBox.Text, out guess)) { numberOfGuesses++; numberOfGuessesLabel.Text = "Number of Guesses: " + numberOfGuesses; if (guess < numberToGuess) { guessResultLabel.Text = "Too low!"; } else if (guess > numberToGuess) { guessResultLabel.Text = "Too high!"; } else { guessResultLabel.Text = "You guessed it! The number was " + numberToGuess + "."; guessButton.Enabled = false; guessTextBox.Enabled = false; } } else { MessageBox.Show("Invalid guess, please enter a number."); } } private void newGameButton_Click(object sender, EventArgs e) { StartNewGame(); } } } ``` 在这个游戏中,玩家需要在1到100之间猜一个随机数。每次猜测后,程序会告诉玩家猜得是高了还是低了,直到玩家猜中为止。游戏还会记录玩家猜的次数,并且提供一个新游戏按钮以重新开始游戏。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值