专访微软VB总经理:VSTS背后的华人推动者

潘正磊-开源软件开发 该文档来自阿帕奇2015中国路演。潘正磊发表了题为“开源软件开发”的主题演讲,欢迎下载! 立即下载
 ——专访微软Visual Basic产品研发部门总经理潘正磊

对我来说,潘正磊这个名字一点也不陌生,在很久以前就听说过这个名字。第一次与潘正磊的“会面”是在李开复先生有次接受采访时所提的一个事例,在例子中他说潘正磊在时间管理上非常有一套,所以使她成为微软总部产品部门晋升最快的经理。在潘正磊的履历表上,她不仅领导了Visual Studio Team System项目的研发工作,目前还是Visual Basic产品研发部门的总经理。第二次是在2006年的微软中国区的TechEd大会上,作为所邀请的主讲人之一,她分享了如何更好地利用Visual Basic 2005的新特性,如何顺利地升级遗留的VB6软件系统,借用一位听众的感慨是说“在国内很难找到一个拥有14年编程经验,现在做产品规划和管理却还能大讲Debug技术和Tips的人”,深为她的深厚技术功底所折服。而第三次,也就是这次的越洋电话采访,北京的时间是下午一点,而在大洋彼岸正是深夜,潘正磊非常准时地打来电话,对我所提出的问题,事无巨细地一一解释,对于我所不理解的概念更是详细地进行说明,让我再一次为其谦恭与耐心所折服。

与“牛人”共舞
对国内的开发人员来看,包括我自己,听到Anders、Don Box的大名时,基本都是肃然起敬。而与这些牛人打交道,却是潘正磊的日常工作之一。正所谓“名人之所以是名人,是因为你不经常接触他”,在潘正磊看来,其实Anders、Don Box都很普通,并不会给人一种高高在上的感觉。遇到问题去请教他们的时候,他们总是会先听听反馈者的意见,然后给予必要的指导,对于正常的会毫无保留的支持,而对于有偏颇的,则会共同探讨,基本上都是以一种互相交流的态度与团队共处。所以在整个团队研发的过程中,虽然Visual Studio Team System项目组差不多有3000人,可是气氛是非常好的。也正是有这样良好的氛围,才能够保证不同的开发小组(VSTS下面分成不同的开发组)都能按照统一的进度开展工作,最终完成这一庞大工程的顺利发布。

VSTS新特性的幕后
在传统的开发应用上,微软的开发平台一直有着不可比拟的优势,随着与之相竞争的Borland开发平台产品线的没落,基于Windows的开发工具,VS有一种曲高和寡的感觉。在互联网高速发展,人们对Web系统要求愈加严格的时候,来一探VS2005对Web开发的支持,相信会让人更好地理解VSTS。

当我“明知故问”地请潘正磊介绍一些在VS2005里面的一些重要特性时,我们不约而同的想到一个成语——数不胜数,比如对.NET Framework的全面升级,比如引入静态与动态代码分析器,比如代码的可视化表达,还比较如单元测试工具与代码覆盖工具的支持等等,每一个改进都大大方便了开发人员的工作。“一个比较明显的例子是在2005版本里,开发人员会发现在开发Web系统时会发现代码编写量会减少约70%,基本不需要重复性的开发,从而使得开发人员可以把精力放在为系统增加有价值的应用上;还比如在维护站点的统一视觉性上,Visual Studio 2005也做了很多的工作,通过视觉效果继承机制Master Pages可以很好地给Web页面以即时的技术支持。”潘正磊举例简述了基于VSTS去开发Web程序的一些优点。是什么原因造就了这些革命性的特性?潘正磊将其归功于对社区使用人员的强烈关注。在Alexa的网站排名里,微软面向开发人员的MSDN网站一直占据技术开发类网站点击量第一的位置,有这么一个强大的社区支持,又何愁没有好的创意呢?

自行一套的建模工具
有标准而不依,硬要自行推出一套“新”的建模工具——DSL,很多人对微软的这一作法耿耿于怀。而潘正磊却不以为然,其实为什么说Visual Studio 2005更适合开发人员使用,就是因为有了这些新的东西。虽然UML看上去很美丽而且无所不能,但它是一个庞大的体系,要想掌握其全部的概念与功能,对很多人尤其是开发人员来说是一个“不可能完成的任务”。按照80/20原则,其实在软件开发过程中,我们80%的时间是使用UML里面20%的功能,比如类描述等,VSTS项目组的原则就是把那些最常用的功能做到极致,让这些工具“对初学者来说足够简单,而对高级用户来说足够强大”,何必求大求全呢?

也许有些人会认为在VSTS里面这个新的工具学习曲线一定很陡峭,潘正磊解释说这是一个误解,在研发这一功能时为了照顾这一点,所有的建模元素都很好地“模仿”了UML,其目的就是缩短架构师或者设计师的上手路程。其实在这一“新”工具的背后,VSTS的思想是在未来,建模将不再是软件组织中少数人的工作,上至架构师,下至测试人员,都可以方便地利用建模工具工作。

贯穿整个开发周期的VSTS
这次VSTS的另外一个让人兴奋的地方,就是对全生命周期开发的完美支持,不论是项目经理,还是架构师,以及开发和测试人员,都可以在这个系统里找到自己的视图,每一个领域内的变动都会被其它人第一时间了解到,然后做出反馈。“协同开发是VSTS专注的一个方向,目前的VSTS可以支持生命周期里面不同角色的相互配合”,潘正磊解释说,“比如针对软件项目管理人员,他可以利用对Excel、Project等熟知的工具对项目进行管理,而且通过SharePoint等站点工具查看仪表盘式的项目状态视图以及各任务执行人员的进度等,而架构师则可以可视化地构建面向服务的功能模块,从部署环境的开始状态时就开始设计,另开发人员和测试人员兴奋的是可以利用前面我们所说的静态分析、单元测试、Web测试等工具,在整个生命周期的前期就规划代码的质量,综合上面的这些特点,使得整个组织都可以直观地跟踪开发过程和项目的实际运行状况,从而更好地协同开发。”

其实微软内部开发时不使用VSTS?
在我准备采访提纲时,好几个对微软颇为了解的朋友都希望我能够就这一问题请教潘正磊女士。本以为她为官方性地解释说“我没有发现这样的情况”,潘正磊很坦率地承认,目前确实有一些部门的产品开发没有基于VSTS,但这并不能说明他们不认可这一产品,比如Vista和Office(Office 2007)两个部门,大家都知道这两个产品的研发已经进行了很长一段时间,而且工程非常庞大,如果在这个时候强制性地让他们把项目转移到VSTS上面来,是不切实际的。但目前已经与他们进行了沟通,在以后的版本里,相应的开发都会转移到VSTS这一新的平台上来,在VSTS项目组里,所以的开发工作都是基于VSTS的,而且使用的非常顺利。

Mono并不会影响到VSTS的市场
可以说自微软诞生那一天起,误解就一直伴随着其左右,“微软一定是反对开源的”就是其中的一个。Mono的出现曾被很多人认为会对VSTS产生较大的冲击,潘正磊笑称“我认为Mono的推出对我们是利大于弊”。开源社区是一个很活跃的地方,在那儿可以获得很多新鲜的思想,微软在最近也对其Windows Mobile的核心代码进行了开源。Mono的推出对于那些想在Linux上面使用.NET的企业而言,是一个不错的选择,这会让更多的人认识到.NET平台的好处,但是如果要在Windows平台上开发基于.NET应用,相应绝大多数人或者企业还是会选择VSTS。

VSTS的下一站
畅想未来总是让人兴奋的,在和潘正磊探讨在VSTS的下一个版本里会增加哪些特性时,她表示虽然现在所说的在短时间内可能无法实现,但可以预见的是,未来的开发平台会支持64位及多核计算,开发人员延续现在的开发模式就可以完成同一软件系统对不同硬件的支持。而且对现在很多Web开发人员所提到的比如对JS等脚本语言的智能提示等功能都会得到改善,对.NET Framework 3.0也会有全面支持。不论是Java社区还是微软技术社区,在开发平台上面都会朝着简单化的方向发展,即它们的功能会越来越强大,而应用会越来越简单,理想的情况是软件生产链上的人员不必关注那些基础的代码,只要对业务非常熟悉,就可以方便地开发出一套完整的应用系统。

潘正磊女士目前在微软总部担任Visual Basic产品研发部门的总经理,与此同时,她也正在与微软亚洲工程院共同筹备Visual Studio在华研发部门的组建和发展。潘正磊女士是微软总部高级管理层中最为成功的华人之一,她于 1992 年以 Access 1.0 软件开发员的身份加盟微软,先后担任开发主管和开发经理等职务。目前作为产品线的总经理,她不仅管理众多研发人员为发布新版本的Visual Basic产品而努力,处理各部门的工作进度和工程优化问题,同时也负责领导和开发产品的战略方向、总体架构、责任使命、发布执行和推广宣传等工作。帮助众多开发人员从VB6/VBA/VBScript转向.Net平台就是她所领导并执行的战略性项目之一。

牛人用Excel做的动画,绝对精彩! 牛人用Excel做的动画,绝对精彩! 压缩包里面的文件内容: 一个Excel动画文件。 没有其他杂七杂八的东西,请用户放心下载。 立即下载

相关推荐

牛人的Excel宏代码

牛人的Excel宏代码,我的电脑中过这种病毒。仅用来研究。

微软顶级代码女神,编程界最有权势的女王

提到程序员,联想到的就是格子衫、黑框眼镜、头发稀疏的男人形象,但程序员中不乏有女士的身影。今年介绍一位在编程语言和编程工具界可能是最有权势的“女王” :微软全球副总裁Julia Liuson(潘正磊)。

Leo的博客 2159

使用.NET 免费开源包ViewFaceCore做一个人脸识别并注册的功能,没有比我更全的

本文介绍了一个基于WinForm的免费人脸识别系统实现方案。系统使用AForge和ViewFaceCore库,支持从USB或电脑自带摄像头采集图像,具备人脸注册和快速识别功能。硬件方面仅需普通摄像头,软件依赖多个NuGet包(如AForge.Video、ViewFaceCore等)。界面包含视频显示、图像预览和功能按钮控件,后台采用SQLServer存储用户面部特征数据。核心代码展示了人脸检测、特征提取和多线程处理逻辑,通过ViewFaceCore实现高效识别。系统具有识别速度快、准确率高的特点,适合Win

一个靠“吃代码”长大的程序猿,专治各种“Bug 饥饿症”。 817

潘正磊: 做最好、最美的你

“Enjoy being you. Enjoy your life. Enjoy your work.”这是我很喜欢的一句话,我觉得无论是对待生活还是对待工作都应充满热情,热爱并享受它们。   “对不起,请让我把话说完”     我 大学毕业后就进了微软。最初的几个星期里,团队开会时我的发言常被一位资深同事打断。终于,在被第三次打断时,我鼓起勇气说出了这句话。他愣了一下,...

yanghuidang 260

基于Open Cluster Management构建企业级多Kubernetes集群管理平台OpenClaw

在云原生架构中,Kubernetes已成为容器编排的事实标准。随着业务规模扩大,企业往往需要管理分布在多个云环境或数据中心的Kubernetes集群,这带来了集群管理、应用分发、策略统一和监控运维等复杂挑战。多集群管理技术通过提供统一控制平面,实现了对分布式资源的集中管控,其核心价值在于提升运维效率、保障安全合规并降低管理成本。Open Cluster Management(OCM)作为CNCF沙箱项目,采用Kubernetes原生架构,通过自定义资源定义(CRD)和控制器模式,为构建多集群管理平台提供了标

weixin_33747129的博客 367

NE555构成多谐振荡器及三角波、正弦波的生成(附工程文件)

NE555构成多谐振荡器及三角波、正弦波的生成 续上一篇:NE555基本原理及相关公式的推导

qq_49979053的博客 5万+

顶级代码女神,编程界最有权势的女王

她1970年出生于中国上海,在北京读了小学和中学, 她的妈妈就是一个工程师,所以受到影响的Julia也进入了STEM领域, 与1991年获得华盛顿大学电子电器工程学士学位。带领一个超3000人研发团队,做出让全球将近四成的程序员爱用的开发工具和编程语言,以及超过六成程序员喜爱的开发框架,所有说她可能是编程界最有权势的“女王”应该不过分吧。1. 要有自信和自我认可,在团队用要勇于表达自己的意见,很多时候不表述意见,别人也猜不到你在想什么,会认为你没有想法,这对职业发展是非常不利的。了解详情的同学可以留个言。

IT界那些事儿 6805

DeepL Pro免费使用技巧与API调用优化方案

机器翻译技术通过神经网络模型实现跨语言语义转换,其核心价值在于保持专业术语准确性的同时实现自然语言流畅度。现代翻译工具如DeepL采用注意力机制等深度学习技术,在医疗、法律等专业领域展现出接近人工翻译的质量。针对API调用场景,开发者可通过请求模拟实现小批量自动化处理,而文档预处理和术语库优化则能显著提升免费额度使用效率。本文重点解析如何通过字符计算优化、临时接口调用等工程实践方法,在合规前提下最大化利用免费翻译资源。

weixin_29038303的博客 265

对话 Eclipse 之父、《设计模式》作者 Erich Gamma

2016 年 6 月 1 日,北京香格里拉饭店,微软中国开发者峰会上,我见到了 VS Code 的负责人,当时的微软杰出工程师 Erich Gamma,那个时候,他更负盛名其实还是因为 Eclipse 和《设计模式》,他非常地 Nice,随身带了很多 VS Code 的贴纸,给我分享了很多,并眉飞色舞地演示着说可以贴在脑门上。如今 4 年过去了,每每回忆起这段采访时,总会不由陷入思考,有些话当时没有充分理解,而后却意味悠长。在此分享对话全文。

唐小引(Echo)的 优快云 博客。 3710

Coze工作流实战:Coze一键生成沉浸式历史故事视频

【coze工作流实战】一键生成火爆的沉浸式历史故事视频!短短3分钟,顶替你3天的工作量!

bickys的博客 1004

uniapp H5刷新页面后返回按钮失效问题完美解决方案

这个问题其实很隐蔽,尤其是uniapp H5 场景下刷新导致栈清理,很多开发者一开始都懵掉了。uniapp 内部对「页面栈只有一个」时的返回逻辑是reLaunch;所以只要在这个分支里替换为自己的逻辑(比如),就能顺利实现预期。目前我在项目里已经跑通了,暂时没发现问题。不得不说,知道源码里这个逻辑后,真的是醍醐灌顶,只能膜拜框架大佬了 🤯。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 523

潘正磊谈微软研发团队管理之道

潘正磊谈微软研发团队管理之道 概要 近日InfoQ有幸独家专访了微软Visual Studio Business Applications团队的总经理潘正磊,与她探讨了微软研发团队管理的相关问题:技术人员的职业发展、如何培养接班人、如何管理不同规模的研发团队等等。 个人简介 潘正磊女士是位于美国雷德蒙市的Visual Studio Business Applications团队的总经理。这个团...

isaac_wei的专栏 656

【3天快速入门WPF】8-数据绑定基础

以下是一个简单的 WPF 数据绑定示例,使用两个TextBox控件分别表示Name和Age来进行进行数据绑定试验。运行程序后,你会看到初始界面中TextBox 中显示初始名字 “张三”,TextBox 中显示初始年龄 “25”。在 XAML 中创建一个简单的界面,包含一个 TextBox 用于输入名字,一个 TextBox 用于显示年龄。当你在 TextBox 中修改名字时,Person 对象的 Name 属性会被自动更新,反之亦然。它的主要作用是为控件及其子控件提供一个默认的数据源,用于数据绑定。

Zy100Papa的博客 969

独家对话微软顶级代码女神潘正磊:Visual Studio 与 VS Code 的未来走向 | 人物志...

题图、作者 | 唐小引 出品 | 优快云(ID:优快云news) Visual Studio 到今天,已经有 22 年的光景,因为它强大的功能和支持几乎大部分语言的开发、丰富的扩展插件等,中国开发者们喜欢冠之以「宇宙第一 IDE」的称号。但每一个使用 Visual Studio 的开发者,总会困扰于一个问题,那便是 Visual Studio 太大太重了,并且还有至关重要的一点是,...

优快云资讯 3687

手把手教你学simulink(85.6)--非线性控制:滑模控制场景实例:基于Simulink建模仿真的滑模控制(Sliding Mode Control, SMC)在无人机自主飞行控制系统中的应用

首先,在MATLAB命令窗口中定义系统的参数和状态空间模型。matlab深色版本% 系统参数m = 1.5;% 无人机质量 (kg)g = 9.81;% 重力加速度 (m/s^2)% 惯性矩阵 (kg*m^2)% 初始条件pos0 = [0;0;0];% 初始位置 (m)vel0 = [0;0;0];% 初始速度 (m/s)0;0];% 初始姿态角 (rad)0;0];% 初始角速度 (rad/s)

MHD0815的博客 649

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

微软副总裁潘正磊:我们将重振 Windows 桌面开发

在刚刚结束的 Build 2018 开发者大会上,微软发布了利用 AI 来帮助开发者提高生产力的 Visual Studio IntelliCode,允许开发者实时合作开发的 Visual Studio Live Share,C#机器学习库 ML.NET 等非常实用的工具和框架。以及,被寄予厚望的 .NET Core 3 。微软全球开发平台事业部副总裁潘正磊 (Julia Liuson) 在接受外...

lsxf_xin的专栏 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Julia女神告诉我任何一家企业本质上都是一家软件公司

微软技术大会今天进入高潮,潘正磊女神发表题为“开发者在数字化转型中的关键价值”的主题演讲,积极评价开发者在各行业数字化转型中扮演的关键角色;   女神潘正磊表示:“由技术创新引领的数字化转型给全球各行业带来了巨大的变革和机遇,今天的任何一家公司都必须成为软件公司,只有驾驭数字技术才能赢得未来。开发者正在迎来最好的时代,但市场、技术、业务需求的快速发展也为开发者提出了更高的要求和挑战。微软深刻理

dotNET跨平台 1364

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

独家对话微软顶级代码女神潘正磊:Visual Studio 与 VS Code 的未来走向 | 人物志

万字长文,解析 Visual Studio 与 VS Code 的未来走向。

唐小引(Echo)的 优快云 博客。 2万+

潘正磊谈微软研发团队管理和敏捷实践学习总结

个人成长 1. 你对这个团队有什么贡献,你对你的客户有什么贡献?2. 目前的流程存在什么问题,要怎样改进?3. 怎么样能够跟大家交流,怎么样可以说服大家同意你的观点,怎么样听取别人的反馈?4. 你在工作中够主动吗?5. 我们在工作中不可能一个人把方方面面都考虑全,这是不可能的。所以你一定要跟你团队里面的人搞好关系,一定要把团队里面帮你一起想这个问题,还有什么其他的观点,而且能够非常坦然的把这个观...

weixin_30780221的博客 337

宇宙第一 IDE Visual Studio 支持 Java 了!

惊不惊喜?意不意外? 作者 | 唐小引 出品 | 优快云(ID:优快云News) 北京时间 10 月 25 日 - 27 日,2018 微软技术暨生态大会(Microsoft Tech Summit)在上海世博中心举行,在第二天的 Keynote 上,微软全球资深副总裁、开发平台事业部总经理,开发届的顶级代码女神潘正磊(Julia Liuson)带来了一项颇让开发者震惊且兴奋...

优快云资讯 7万+

【VBA】常用编程技巧个人总结

下列操作基于Office2007版本。 目录 VBA开发模式打开 语法操作 FORM中常用的控件操作 对象操作【Book,Sheet,Cells】 调试方法 其他补充 VBA开发模式打开 语法操作 常量定义方法 Public Const PI As Double = 3.1415926535 字符和数值,Val函数,以及Format通用格式化 'String-&gt...

走起来,小步快跑,方能前进 2720

一门编程语言,二三个牛人就能易用起来-使用freebasic版的afx库

一门语言,有时候常常只需要两三个牛人来做好基础工作,这门语言便开始易用起来了。Freebasic也不例外。作为开源的,而且毫无特色的语言,永远不要指望它能象微软的vb或c#那样易用。但Freebasic是目前极少数支持64位、跨平台,支持面向对象的basic语系语言   reebasic菜鸟初学Freebasic基础教程十:使用freebasic版的afx库 已有 1453 次阅读2017-...

3609
上一篇: 出版社内幕爆料
下一篇: 听李维谈JB2007有感 CodeGear能否重现辉煌?
futurelight
博客等级 码龄25年 358粉丝 229原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值