【微软大法好】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初窥>承蒙大家喜爱和编辑推荐,在此 ...
随机推荐
- [BZOJ1083] [SCOI2005] 繁忙的都市 (kruskal)
Description 城市C是一个非常繁忙的大都市,城市中的道路十分的拥挤,于是市长决定对其中的道路进行改造.城市C的道路是这样分布的:城市中有n个交叉路口,有些交叉路口之间有道路相连,两个交叉路口 ...
- cut命令及参数企业案列讲解及awk对比
cat oldboy.txt I am oldboy myqq is 49000448 cut -d " " -f3,6 oldboy.txt oldboy 49000448 aw ...
- which命令实战及原理详解-PATH实战配置
Which查找命令所在的路径,搜索范围来自全局环境PATH变量对应的路径. 其他方法: find / -type f -name “useradd” whereis -b useradd PATH的路 ...
- Cglib及其基本使用
前言 最近一直在看Spring源码,其实我之前一直知道AOP的基本实现原理: 如果针对接口做代理默认使用的是JDK自带的Proxy+InvocationHandler 如果针对类做代理使用的是Cgli ...
- Filter的过滤链理解
一.Filter过滤链 web.xml配置了filter过滤器,在容器启动的时候执行了init()方法进行了初始化,然后在容器关闭的时候执行了destroy()方法销毁过滤器,在每次服务器接受请求的时 ...
- Rlwrap工具的安装和配置
1.创建安装目录装备安装包 root权限 [root@dbsrc oracle]# mkdir /stage [root@dbsrc oracle]# chmod –R 777 /stage 从U盘将 ...
- linux的基本操作命令
linux的基本命令操作: 1.什么是Linux 是一个OS,是Unix克隆版2.命令的基本格式: 命令 [选项]... [参数]... //格式 ls ...
- 记一次 synchronized 锁字符串引发的坑兼再谈 Java 字符串
业务有一个需求,我把问题描述一下: 通过代理IP访问国外某网站N,每个IP对应一个固定的网站N的COOKIE,COOKIE有失效时间. 并发下,取IP是有一定策略的,取到IP之后拿IP对应的COOKI ...
- 浅析JavaScript的prototype
一.JavaScript对象的创建 (1)对象方法 function Student(name){ this.name=name; this.showName=function(){ alert(&q ...
- python全栈开发-Day6 字符编码
python全栈开发-Day6 字符编码 一 .了解字符编码的知识储备 一 .计算机基础知识 二 .文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启 ...