unity tensorflow 环境安装
unity tensorflow 官方 教程
unity版本必须经过配置。不像c#那样简单。
第一部分, 安装tensorflow环境
1,安装anaconda
anaconda 是python的包管理程序,有了它tensorflow的配置会简化不少,兵器额允许各种不同版本的python同时存在十分方便。conda的基础命令教程在https://blog.csdn.net/lengyoumo/article/details/102720967,感兴趣的可以去查阅
第一步我们需要到anaconda官网选择适合的系统版本,windows或mac。安装完成后,打开命令行就可以输入conda命令了。
2,使用anaconda创建python环境
打开命令行工具,输入以下命令:
创建python环境
conda create -n python3.6 python=3.6
这段命令的意思是建立一个名为python3.6的 环境,该环境python版本是3.6
输入命令后一路回车就可以进行环境安装了。
安装完成后输入以下指令进入刚刚创建的环境
conda activate python3.6
安装tensorflow
继续在命令行中输入命令:
pip install tensorflow
该命令的作用是在当前环境安装tensorflow。值得一提的是tensorflow分为两个版本,一个是cpu版一个是gpu版。如果你的显卡是中、高端显卡,推荐你安装gpu版本,本人实测在gtx2080显卡下,训练速度提高了不止30倍。
关于tensorflow的不同版本安装详情,请查看此教程https://blog.csdn.net/lengyoumo/article/details/89272188
安装mlagents 的python环境工具
pip install mlagents
安装unity的mlgents部分
1. 获取mlgents
在git中输入以下命令直接获取资源,也可以直接到https://github.com/Unity-Technologies/ml-agents.git下载获取代码包
git clone https://github.com/Unity-Technologies/ml-agents.git
2. 安装依赖
进入刚下载的ml-agents相关目录,执行以下命令安装项目所需的文件!
cd ml-agents-envs
pip install -e ./
cd ..
cd ml-agents
pip install -e ./
以上命令是分别进入ml-agents-envs和ml-agents目录使用pip install -e来安装依赖
然后等待安装结束即可
三 测试!!!
- 打开unity 新建一个项目
- 将ml-agents目录下的unity-sdk -> assets目录下的所有文件都拖到unity项目中的Assets目录中。
- 在unity中打开simple中的scene 运行即可看到效果!
关于在unit中使用tensflow
该项目依赖tensorflow环境,当你的程序打包出来后,要求客户端也需要有tensorflow才行。如果希望直接就能使用(包括android ios),那就要使用TFSharpPlugin才行。另外,如果想在项目中直接调用tensflow的api 也需要引入这个库。
搞定TensorFlowSharp
TensorFlowSharp项目
c# 项目(非unity)可以直接使用 只要在vs2019中项目选项中设置nuget包,搜索tensorflowSharp 然后引入,既可直接在项目中使用。
项目地址:https://github.com/migueldeicaza/TensorFlowSharp
unity 则必须使用 tensorflowsharp的unity专用包 。该包包含一个tensorflow环境,使你不必依赖系统环境。可以直接跨平台打包。
unity包地址:https://s3.amazonaws.com/unity-ml-agents/0.5/TFSharpPlugin.unitypackage
该包包含ml-agents 和 TensorFlowSharp!
下面有测试代码哦~
如果该文章帮到了你,麻烦给个赞,多谢!!
相关文章
https://www.atyun.com/25429.html
测试tensorflowSharp 的代码
在代码中添加
using System;
using TensorFlow;
using System.Collections;
using System.Text;
using tensorflowCtest;
//using TensorFlowSharpCore;
namespace tensorflowCtest
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
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.GetValue();
Console.WriteLine("a+b={0}", addingResults);
// 两常量乘
var multiplyResults = session.GetRunner().Run(graph.Mul(a, b));
var multiplyResultValue = multiplyResults.GetValue();
Console.WriteLine("a*b={0}", multiplyResultValue);
var tft = new TFTensor(Encoding.UTF8.GetBytes($"Hello TensorFlow Version {TFCore.Version}! LineZero"));
var hello = graph.Const(tft);
var helloResults = session.GetRunner().Run(hello);
Console.WriteLine(Encoding.UTF8.GetString((byte[])helloResults.GetValue()));
}
Console.ReadKey();
}
}
}