TensorFlow.NET
发布了v0.3版本,让我们尝试将其用于图像识别。使用TensorFlow
.NET和[ ](https://github.com/scisharp/NumSharp)
进行图像识别的示例,它将使用预先训练的初始模型来预测输出按概率排序的类别的图像。原始论文在这里。 GoogLeNet
的Inception
体系结构设计为即使在严格的内存和计算预算约束下也能很好地运行。 Inception
的计算成本也远低于其他之前的方案。这使得在大数据场景中利用初始网络变得可行,其中需要以合理的成本处理大量数据,或者存储器或计算容量本身受限的场景,例如在移动视觉设置中。
GoogLeNet架构符合以下设计原则:
- 避免代表性瓶颈,特别是在网络早期。
- 更高维度的表示更容易在网络内本地处理。
- 空间聚合可以在较低维度嵌入上完成,而表征能力没有太大或任何损失。
- 平衡网络的宽度和深度。
让我们开始使用实际代码。
1.准备数据
此示例将下载数据集并自动解压缩。省略了一些外部路径,请参考实际路径的源代码。
private void PrepareData()
{
Directory.CreateDirectory(dir);
// get model file
string url = "models/inception_v3_2016_08_28_frozen.pb.tar.gz";
string zipFile = Path.Join(dir, $"{pbFile}.tar.gz");
Utility.Web.Download(url, zipFile);
Utility.Compress.ExtractTGZ(zipFile, dir);
// download sample picture
string pic &#