【微软大法好】VS Tools for AI全攻略
大家都知道微软在Connect();17大会上发布了VS Tools for AI,旨在提升Visual Studio和VSCode对日益增长的深度学习需求的体验。看了一圈,网上似乎没有一个完整的中文教程来教你怎么完整配置深度学习方案。
与此同时我也接了一个活,是俱乐部与MSRA的项目,项目的目的之一是向VS Tools for AI的samples库里增加新的算法,所以这篇技术文章就应运而生了。
本文将分为以下几个部分来进行阐述:
1,什么是VS Tools for AI
2,怎么在本地配置好VS Tools for AI的前端
3,怎么配置Azure云上的后端环境
4,怎么连接前后端,以及怎么运行TensorFlow实例
============================================================
1,什么是VS Tools for AI?
VS Tools for AI(下称AI组件)的官网地址:https://www.visualstudio.com/downloads/ai-tools-vs/
GitHub地址:https://github.com/Microsoft/vs-tools-for-ai
简而言之,AI组件的用处,是让你快速构建、训练一个深度学习Project。
AI组件的主要功能有:
-开发,调试和部署深度学习和人工智能解决方案:AI组件是支持CNTK,Google TensorFlow,Theano,Keras,Caffe2等深度学习框架的扩展。 您可以通过开放式架构使用其他深度学习框架。 AI组件利用对Python,C / C ++ / C#的现有代码支持,并为Cognitive Toolkit BrainScript提供额外的支持。
-使用“样本库”(就是上文提到的样例)快速构建代码:AI组件与Azure机器学习集成在一起,可以轻松浏览使用CNTK,TensorFlow,MMLSpark等的样本实验库。 这使得开始深入学习AI项目很容易。
-在Azure中扩展深度学习训练并运行AI模型:用于AI的Visual Studio工具与Azure批处理AI和Azure机器学习服务集成,以便向Azure GPU虚拟机,Spark群集等提交深度学习作业。 您可以监视最近的实验的性能,然后生成一个Web服务来为新的智能应用程序供电。
-高效的AI开发人员工具,可以训练模型并将AI注入到您的应用程序中:AI组件可为开发人员和数据科学家提供最强大的一整套集成工具,用于创建,调试和部署其自定义深度学习模型。 使用Visual Studio的强大功能,您可以使用刚刚培训的模型无缝地构建应用程序,而无需切换IDE。
-用TensorBoard等集成开放工具可视化您的模型处理:AI组件还集成了使用TensorBoard进行模型训练和实验的监控和可视化。 在TensorBoard中打开您的作业,以在本地和远程虚拟机上运行。
2,怎么在本地配置好你的AI组件前端
通过阅读上文的overview,我们知道,AI组件可以说是弥补了VS的一个短板,那么要怎么安装AI组件呢?
首先你得安装好Visual Studio 2017。其Community版本依然是免费的,我因为是MSP,拥有VS Enterprise的订阅,感谢微软爸爸给我饭吃。在安装过程中,选择好Python组件,安装Anaconda 4.4以及Python3.

在这里安装,当然你也可以选择独立地安装Anaconda和Python3,并且将其加入到系统变量中,以便于在shell中调用。

之后,在上文提到的网址里下载AI组件,作为一个插件安装。

安装完毕之后,你已经做好了初步准备。
接下来,请在本机安装好TensorFlow(CPU与GPU均可),版本1.4最佳(最新版本)。CPU版本只需要
pip install tensorflow
即可,而安装GPU版本则需要安装对应版本的CUDA和CuDNN。因为本学期我换了一台笔记本,轻薄本没有独立显卡,所以我安装的是CPU版本。
调试你的TensorFlow代码
在Visual Studio中创建一个新的TensorFlow项目:

如果一切顺利的话,你将可以看见图中的选择框。
之后熟悉的工作区回来了。

当然,我觉得TensorFlow的基础知识不需要我来逐一讲解,看这篇博文的人应该都具有一定的TensorFlow编程技巧。
编写完之后按下F5,自动启动shell,运行程序,console中输出结果。
【微软大法好】VS Tools for AI全攻略的更多相关文章
- 【微软大法好】VS Tools for AI全攻略(3)
接着上文,现在我们需要一种穷人的方法来搭建好Azure虚拟机. 思路很简单,因为AI组件的原理其实是传送了script文件和命令上去,那么我们这个虚拟机只要做好了所有的配置,那么我们就可以将它当作深度 ...
- 【微软大法好】VS Tools for AI全攻略(2)
接着上文,我们来讨论如何使用Azure资源来训练我们的tensorflow项目.Azure云我个人用得很多,主要是因为微软爸爸批了150刀每月的额度,我可以愉快地玩耍. 那么针对Azure,有成套的两 ...
- 【微软大法好】VS Tools for AI全攻略(4)——选择适合自己的虚拟机
当我们选择好了自己的虚拟机后,也许效果不尽如人意.就比如我,发现代码在训练一段时间之后,CPU的使用率会下降. 这个时候我们就要开始考虑,是不是我们选择的虚拟机不是适合自己的型号. Azure的虚拟机 ...
- 【微软大法好】VS Tools for AI全攻略(3):低配置虚拟机也能玩转深度学习,无需NC/NV系列
接着上文,现在我们需要一种穷人的方法来搭建好Azure虚拟机. 思路很简单,因为AI组件的原理其实是传送了script文件和命令上去,那么我们这个虚拟机只要做好了所有的配置,那么我们就可以将它当作深度 ...
- VSCode插件开发全攻略(十)打包、发布、升级
更多文章请戳VSCode插件开发全攻略系列目录导航. 发布方式 插件开发完了,如何发布出去分享给他人呢?主要有3种方法: 方法一:直接把文件夹发给别人,让别人找到vscode的插件存放目录并放进去,然 ...
- Moon.Orm3.8技术全攻略
Moon.ORM技术全攻略 一.绪论 本文主要是针对Moon.ORM的技术的讨论及其使用使用指导.如有其它疑问,请留言.本文主要针对Moon.ORM3.9版本,同时将会对4.0做一个技术预览.本文从 ...
- 用友U8客户端连接不上服务器全攻略
用友U8客户端连接不上服务器全攻略 http://www.enet.com.cn2009年09月23日09:26 来自论坛 [导读]:如果网络不通,就让用户查找网络原因 检查步骤: 1.网络是否通? ...
- Android使用XML全攻略(1)
Android使用XML全攻略(1) Android 是针对移动设备的一种新兴的开源操作系统和 SDK.借助它,您可以创建功能强大的移动应用程序.当您的应用程序可以访问 Web 服务时,其吸引力 ...
- VS2013全攻略(安装,技巧,快捷键,插件)!
工欲善其事,必先利其器.VS2013全攻略(安装,技巧,快捷键,插件)! 之前一篇<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥>承蒙大家喜爱和编辑推荐,在此 ...
随机推荐
- 论文学习:Fully Convolutional Networks for Semantic Segmentation
发表于2015年这篇<Fully Convolutional Networks for Semantic Segmentation>在图像语义分割领域举足轻重. 1 CNN 与 FCN 通 ...
- 云计算之路-阿里云上:博客web服务器轮番CPU 100%
今天下午14:30左右开始,不知道怎么回事,博客站点负载均衡中的web服务器轮番CPU 100%.平时访问高峰5台服务器就能稳稳支撑,而今天发现CPU出现100%问题后就开始加服务器,结果到目前加到了 ...
- 8Manage:物流CRM,深度挖掘快递企业下一站蓝海!
[导读]网购的普及加快了快递物流服务在中国的发展,而物流行业也开始展露出自身巨大的发展潜力和进步空间.其中,作为物流行业根本核心的物流客户关系管理开始引起了管理者的注意,如何升级用户物流服务体验,把握 ...
- 关于Web Audio API的入门
Web Audio API提供了一个简单强大的机制来实现控制web应用程序的音频内容.它允许你开发复杂的混音,音效,平移以及更多. 可以先看一下MDN的这篇文章<Web Audio API的运用 ...
- [转]【安卓笔记】AsyncTask源码剖析
[转][安卓笔记]AsyncTask源码剖析 http://blog.csdn.net/chdjj/article/details/39122547 前言: 初学AsyncTask时,就想研究下它的实 ...
- c++中使用xercesc对xml进行schema校验
头文件 #pragma once #if !defined(AFX_A1CONTENTHANDLER_H__E0CFBC18_CCC1_42F3_B0A4_B03331AB9693__INCLUDED ...
- codeforces 286E Ladies' Shop
题目大意:n个小于等于m的数,现在你需要在[1,m]中选择若干个数,使得选出的数能组成的所有数正好与n个数相同,给出最少要选多少个数. 题目分析: 结论一:选择的若干个数一定在n个数中. 证明:否则的 ...
- Unity中List的随机排序(乱序)
为什么要给List排序做一个Unity限定条件呢 首先,是C#中的List泛型,若是Java,直接调用Collection.shuffle()就OK了 而Unity的C#版本较低,不能使用Random ...
- 【Unity3D与23种设计模式】外观模式(Facade)
GoF中定义: "为子系统定义一组统一的接口,这个高级的接口会让子系统更容易被使用" 其实这个模式虽然很少听过 但我们在敲代码的时候却是经常使用 比如: 在游戏初始化时 要初始化很 ...
- eclipse打包