首页 文章 精选 留言 我的

精选列表

搜索[cto],共10000篇文章
优秀的个人博客,低调大师

百度CTO王海峰:AI大生产平台再升级 助力中国科技自立自强

12月27日,百度首席技术官王海峰在百度 Create 2021(百度 AI 开发者大会)上,公布了百度 AI 最新技术进展及落地成果。百度 AI 多年技术积累和产业实践的集大成——百度大脑已发展成为全球领先的人工智能平台,开放能力近1400项。国产深度学习平台飞桨汇聚406万开发者、服务15.7万家企事业单位,位居中国深度学习平台综合市场份额第一。领先的 AI 能力既支撑百度全面发展,探索生物计算、量子计算等前沿领域,也通过百度智能云在制造、能源、金融、城市建设、乡村振兴等关乎国计民生的重要领域落地。 王海峰表示,在新的发展阶段,AI 技术呈现融合创新、降低门槛的特点。百度大脑持续开源开放 AI 创新成果,支撑各界共同探索可持续发展之路。 百度 AI 大生产平台再升级领军中国 AI 技术前沿 百度自诞生之日起,就与 AI 息息相关,2010年开始全面布局 AI 核心技术。十余年间,百度 AI 专利申请量超过1.3万件,连续三年位列中国第一,获得国家技术发明奖、国家科技进步奖、中国专利金奖等多个国家级重要奖励,多项技术入选 MIT 科技评论十大突破技术,多次入选“全球4大 AI 巨头”、“全球 AI 公司五强”等国际榜单。 当前,如何兼顾科技创新与绿色低碳,推动科技进一步转化为生产力,实现经济、社会、环境的可持续发展,是社会各界共同关注的问题。 王海峰表示,百度大脑已经具备标准化、自动化和模块化的工业大生产特征,进化为 AI 大生产平台,持续在技术突破、开源开放、绿色发展等方面融合创新,支持各界共同探索可持续发展之路。 在技术自主创新层面,百度发布“文心”系列产业级知识增强大模型。其中,百度联合鹏城实验室推出全球首个知识增强千亿大模型“鹏城-百度·文心”,在60余项任务上取得业界最好效果。文心从大规模知识和海量数据中融合学习,效率更高,效果更好,并具有更好的可解释性。同时,文心还通过跨语言学习,具备同时理解多种语言的能力;通过跨模态学习,实现复杂场景的多层次、高精度语义理解。 知识增强大模型让百度大脑的 AI 能力更加丰富、强大。会上,王海峰通过语音交互,与百度大脑共同“创作”了一幅水墨画,并请百度大脑根据画中内容和意境作了一首诗。“这背后是知识增强大模型带来的更加强大和智能的 AI 能力,以及语音、视觉、自然语言处理、知识图谱、VR、AR 等技术的融合创新。”王海峰介绍。 基于知识增强大模型的技术突破,百度大脑可以更好地满足数字人等各种场景的应用需求。此次,数字人平台“百度智能云曦灵”也正式亮相,为各行各业提供多种数字人生成和内容生产服务,进一步降低数字人的应用门槛。 知识增强大模型等技术创新的背后,是深度学习平台飞桨和强大算力底座的支撑。 飞桨是中国首个自主研发、功能丰富、开源开放的产业级深度学习平台,集核心框架、模型库、开发套件和工具组件为一体,帮助开发者实现 AI 模型的便捷开发、高效训练和多端多平台部署,助力各行各业的创新和发展。目前,飞桨已汇聚406万开发者、服务15.7万家企事业单位,位居中国深度学习平台综合市场份额第一。 百度打造的绿色算力底座,包括自主研发的 AI 芯片“昆仑芯”、高性能极致弹性的异构计算平台“百舸”以及绿色节能的数据中心,为 AI 技术研发及大规模应用提供高效、稳定的算力支持,助力实现可持续发展。百度单体数据中心年均 PUE 低至1.08,远低于1.59的全球平均水平。 前沿技术领域,百度打造了国内首个提供从应用到量子处理器一站式服务的量子计算云平台,降低量子计算学习与应用的门槛,推动量子计算在化学、金融、材料等领域的应用;推出业界首个 mRNA 疫苗序列设计算法,可以在短短十分钟内找出稳定的疫苗序列。目前,百度已与中国疾病预防控制中心合作,推动疫苗和药物研发。 云智一体能力持续提升 赋能国民经济支柱产业 百度大脑已有近1400项开放能力,基于百度智能云“云智一体”的优势,将 AI 技术输送到制造、能源、城市建设、乡村振兴等关乎国计民生的重要领域,助力中国经济、社会数字化转型和智能化升级。 制造业是国民经济的支柱产业,百度依托“百度智能云开物”工业互联网平台,从点、线、面、体四个层次,帮助企业实现从业务环节、流程到企业经营的智能化,并打通产业链之间、企业之间、企业与政府之间的协同创新,助推产业智能化。目前,百度智能云开物工业互联网平台已经在重庆两江新区落地,助力当地形成有竞争力的产业集群,推动区域高质量发展。 在能源领域,百度智能云与国家电投集团东方能源共同打造“智慧数字热网”,并构建数字热网、融合社群网、联通政务网“三网融合”的创新模式,企业、社区、用户三方共同助力“双碳”目标达成。 在智慧城市领域,百度将建设海淀城市大脑的经验拓展到区县、乡村,促进乡村振兴和共同富裕。在“中国蔬菜之乡”山东寿光,百度智能云打造的寿光大脑实现蔬菜生产的智能化,只需2个工作人员加一个 APP,就可以管理数十个蔬菜大棚。在昆明市官渡区,官渡大脑为联合国《生物多样性公约》缔约方大会提供了重要保障,也在持续为当地的安全生产、消防抢险、市容环境、居民生活保驾护航。 从关乎未来的前沿科技,到影响国计民生的大产业,从城市建设、乡村振兴的第一线,到普通群众的身边事,各行各业的开发者们正基于百度大脑创造美好生活。百度也始终秉持初心,融合创新、开源开放,支撑各行各业的转型升级和可持续发展。 2021年是“十四五”开局之年,也是科技强国战略实施的关键之年。王海峰表示,接下来,百度将一如既往的走创新、开放、发展之路,在人才培养、绿色低碳、安全伦理、社会责任等方面继续努力,和各界携手实现科技自立自强。 点击进入获得更多技术信息~~

优秀的个人博客,低调大师

CTO@全体成员,未经允许和评审不让用反射,Java反射到底慢在哪?

反射具体是怎么影响性能的?这引起了我的反思。是啊,在阐述某个观点时确实有必要说明原因,并且证明这个观点是对的,虽然反射影响性能人尽皆知,我曾经也真的研究过反射是否存在性能问题,但并没有在写文章的时候详细说明。这让我想到网上很多信息只会告诉你结论,并不会说明原因,导致很多学到的东西都是死记硬背,而不是真正掌握,别人一问或者自己亲身遇到同样的问题时,傻眼了。 反射真的存在性能问题吗? 还是使用上篇文章的demo,为了放大问题,找到共性,采用逐渐扩大测试次数、每次测试多次取平均值的方式,针对同一个方法分别就直接调用该方法、反射调用该方法、直接调用该方法对应的实例、反射调用该方法对应的实例分别从1-1000000,每隔一个数量级测试一次: 测试代码如下(Person、ICompany、ProgramMonkey这三个类已在之前的文章中贴出): publicclassReflectionPerformanceActivityextendsActivity{ privateTextViewmExecuteResultTxtView=null; privateEditTextmExecuteCountEditTxt=null; privateExecutormPerformanceExecutor=Executors.newSingleThreadExecutor(); privatestaticfinalintAVERAGE_COUNT=10; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_reflection_performance_layout); mExecuteResultTxtView=(TextView)findViewById(R.id.executeResultTxtId); mExecuteCountEditTxt=(EditText)findViewById(R.id.executeCountEditTxtId); } publicvoidonClick(Viewv){ switch(v.getId()){ caseR.id.executeBtnId:{ execute(); } break; default:{ } break; } } privatevoidexecute(){ mExecuteResultTxtView.setText(""); mPerformanceExecutor.execute(newRunnable(){ @Override publicvoidrun(){ longcostTime=0; intexecuteCount=Integer.parseInt(mExecuteCountEditTxt.getText().toString()); longreflectMethodCostTime=0,normalMethodCostTime=0,reflectFieldCostTime=0,normalFieldCostTime=0; updateResultTextView(executeCount+"毫秒耗时情况测试"); for(intindex=0;index<AVERAGE_COUNT;index++){ updateResultTextView("第"+(index+1)+"次"); costTime=getNormalCallCostTime(executeCount); reflectMethodCostTime+=costTime; updateResultTextView("执行直接调用方法耗时:"+costTime+"毫秒"); costTime=getReflectCallMethodCostTime(executeCount); normalMethodCostTime+=costTime; updateResultTextView("执行反射调用方法耗时:"+costTime+"毫秒"); costTime=getNormalFieldCostTime(executeCount); reflectFieldCostTime+=costTime; updateResultTextView("执行普通调用实例耗时:"+costTime+"毫秒"); costTime=getReflectCallFieldCostTime(executeCount); normalFieldCostTime+=costTime; updateResultTextView("执行反射调用实例耗时:"+costTime+"毫秒"); } updateResultTextView("执行直接调用方法平均耗时:"+reflectMethodCostTime/AVERAGE_COUNT+"毫秒"); updateResultTextView("执行反射调用方法平均耗时:"+normalMethodCostTime/AVERAGE_COUNT+"毫秒"); updateResultTextView("执行普通调用实例平均耗时:"+reflectFieldCostTime/AVERAGE_COUNT+"毫秒"); updateResultTextView("执行反射调用实例平均耗时:"+normalFieldCostTime/AVERAGE_COUNT+"毫秒"); } }); } privatelonggetReflectCallMethodCostTime(intcount){ longstartTime=System.currentTimeMillis(); for(intindex=0;index<count;index++){ ProgramMonkeyprogramMonkey=newProgramMonkey("小明","男",12); try{ MethodsetmLanguageMethod=programMonkey.getClass().getMethod("setmLanguage",String.class); setmLanguageMethod.setAccessible(true); setmLanguageMethod.invoke(programMonkey,"Java"); }catch(IllegalAccessExceptione){ e.printStackTrace(); }catch(InvocationTargetExceptione){ e.printStackTrace(); }catch(NoSuchMethodExceptione){ e.printStackTrace(); } } returnSystem.currentTimeMillis()-startTime; } privatelonggetReflectCallFieldCostTime(intcount){ longstartTime=System.currentTimeMillis(); for(intindex=0;index<count;index++){ ProgramMonkeyprogramMonkey=newProgramMonkey("小明","男",12); try{ FieldageField=programMonkey.getClass().getDeclaredField("mLanguage"); ageField.set(programMonkey,"Java"); }catch(NoSuchFieldExceptione){ e.printStackTrace(); }catch(IllegalAccessExceptione){ e.printStackTrace(); } } returnSystem.currentTimeMillis()-startTime; } privatelonggetNormalCallCostTime(intcount){ longstartTime=System.currentTimeMillis(); for(intindex=0;index<count;index++){ ProgramMonkeyprogramMonkey=newProgramMonkey("小明","男",12); programMonkey.setmLanguage("Java"); } returnSystem.currentTimeMillis()-startTime; } privatelonggetNormalFieldCostTime(intcount){ longstartTime=System.currentTimeMillis(); for(intindex=0;index<count;index++){ ProgramMonkeyprogramMonkey=newProgramMonkey("小明","男",12); programMonkey.mLanguage="Java"; } returnSystem.currentTimeMillis()-startTime; } privatevoidupdateResultTextView(finalStringcontent){ ReflectionPerformanceActivity.this.runOnUiThread(newRunnable(){ @Override publicvoidrun(){ mExecuteResultTxtView.append(content); mExecuteResultTxtView.append("\n"); } }); } }` 测试结果如下: 反射性能测试结果 测试结论: 反射的确会导致性能问题; 反射导致的性能问题是否严重跟使用的次数有关系,如果控制在100次以内,基本上没什么差别,如果调用次数超过了100次,性能差异会很明显; 四种访问方式,直接访问实例的方式效率最高;其次是直接调用方法的方式,耗时约为直接调用实例的1.4倍;接着是通过反射访问实例的方式,耗时约为直接访问实例的3.75倍;最慢的是通过反射访问方法的方式,耗时约为直接访问实例的6.2倍; 反射到底慢在哪? 跟踪源码可以发现,四个方法中都存在实例化ProgramMonkey的代码,所以可以排除是这句话导致的不同调用方式产生的性能差异;通过反射调用方法中调用了setAccessible方法,但该方法纯粹只是设置属性值,不会产生明显的性能差异;所以最有可能产生性能差异的只有getMethod和getDeclaredField、invoke和set方法了,下面分别就这两组方法进行测试,找到具体慢在哪? 首先测试invoke和set方法,修改getReflectCallMethodCostTime和getReflectCallFieldCostTime方法的代码如下: privatelonggetReflectCallMethodCostTime(intcount){ longstartTime=System.currentTimeMillis(); ProgramMonkeyprogramMonkey=newProgramMonkey("小明","男",12); MethodsetmLanguageMethod=null; try{ setmLanguageMethod=programMonkey.getClass().getMethod("setmLanguage",String.class); setmLanguageMethod.setAccessible(true); }catch(NoSuchMethodExceptione){ e.printStackTrace(); } for(intindex=0;index<count;index++){ try{ setmLanguageMethod.invoke(programMonkey,"Java"); }catch(IllegalAccessExceptione){ e.printStackTrace(); }catch(InvocationTargetExceptione){ e.printStackTrace(); } } returnSystem.currentTimeMillis()-startTime; } privatelonggetReflectCallFieldCostTime(intcount){ longstartTime=System.currentTimeMillis(); ProgramMonkeyprogramMonkey=newProgramMonkey("小明","男",12); FieldageField=null; try{ ageField=programMonkey.getClass().getDeclaredField("mLanguage"); }catch(NoSuchFieldExceptione){ e.printStackTrace(); } for(intindex=0;index<count;index++){ try{ ageField.set(programMonkey,"Java"); }catch(IllegalAccessExceptione){ e.printStackTrace(); } } returnSystem.currentTimeMillis()-startTime; } 沿用上面的测试方法,测试结果如下: invoke和set 修改getReflectCallMethodCostTime和getReflectCallFieldCostTime方法的代码如下,对getMethod和getDeclaredField进行测试: privatelonggetReflectCallMethodCostTime(intcount){ longstartTime=System.currentTimeMillis(); ProgramMonkeyprogramMonkey=newProgramMonkey("小明","男",12); for(intindex=0;index<count;index++){ try{ MethodsetmLanguageMethod=programMonkey.getClass().getMethod("setmLanguage",String.class); }catch(NoSuchMethodExceptione){ e.printStackTrace(); } } returnSystem.currentTimeMillis()-startTime; } privatelonggetReflectCallFieldCostTime(intcount){ longstartTime=System.currentTimeMillis(); ProgramMonkeyprogramMonkey=newProgramMonkey("小明","男",12); for(intindex=0;index<count;index++){ try{ FieldageField=programMonkey.getClass().getDeclaredField("mLanguage"); }catch(NoSuchFieldExceptione){ e.printStackTrace(); } } returnSystem.currentTimeMillis()-startTime; } 沿用上面的测试方法,测试结果如下: getMethod和getDeclaredField 测试结论: getMethod和getDeclaredField方法会比invoke和set方法耗时; 随着测试数量级越大,性能差异的比例越趋于稳定; 由于测试的这四个方法最终调用的都是native方法,无法进一步跟踪。个人猜测应该是和在程序运行时操作class有关,比如需要判断是否安全?是否允许这样操作?入参是否正确?是否能够在虚拟机中找到需要反射的类?主要是这一系列判断条件导致了反射耗时;也有可能是因为调用natvie方法,需要使用JNI接口,导致了性能问题(参照Log.java、System.out.println,都是调用native方法,重复调用多次耗时很明显)。 如果避免反射导致的性能问题? 通过上面的测试可以看出,过多地使用反射,的确会存在性能问题,但如果使用得当,所谓反射导致性能问题也就不是问题了,关于反射对性能的影响,参照下面的使用原则,并不会有什么明显的问题: 不要过于频繁地使用反射,大量地使用反射会带来性能问题; 通过反射直接访问实例会比访问方法快很多,所以应该优先采用访问实例的方式。 后记 上面的测试并不全面,但在一定程度上能够反映出反射的确会导致性能问题,也能够大概知道是哪个地方导致的问题。如果后面有必要进一步测试,我会从下面几个方面作进一步测试: 测试频繁调用native方法是否会有明显的性能问题; 测试同一个方法内,过多的条件判断是否会有明显的性能问题; 测试类的复杂程度是否会对反射的性能有明显影响。

优秀的个人博客,低调大师

蚂蚁金服CTO鲁肃:支付宝成就了我,我做了很多“拧螺丝”的事儿

他被誉为支付宝技术平台的奠基人之一,但是他却说“这还不是我心中最完美的架构”;他曾是支付宝史上最危机关头——停机发布 17 小时的救火大队长,但是在他看来,只是做了很多”拧螺丝“的事情。 他行事低调但是却信奉“此时此地,非我莫属”的豪气;他在支付宝有着灿烂无比的职业履历却仅仅认为自己是没有掉队的那个人。 他是程立(鲁肃),是我们本季《十年》技术专题纪录片中的第一位登场嘉宾,在 2009-2019 互联网技术十年发展的波澜壮阔中,他,是一位亲历者。 程立(鲁肃),蚂蚁金服首席技术官。2005 年加入支付宝,是支付宝技术平台的奠基人之一,在支付宝与蚂蚁金服期间,主持支付宝各代技术架构的规划与基础技术平台的建设。2018 年,程立开始担任蚂蚁金服国际事业群首席运营官。 InfoQ:今天我们的主题是“十年”:希望能站在互联网技术发展的时间线上梳理

优秀的个人博客,低调大师

【百度飞桨黄埔学院】CTO案头必备|AI技术产业落地的42章经

每一次技术革命,都是一次生产力与生产关系的大变革。AI时代呼啸而至,深度学习、强化学习、图神经网络显示出强大的技术张力,但为何在产业应用落地中又会遇到种种挑战,让不少产业从业者担忧——AI到底离我们有多远? 黄埔学院,“首席AI架构师”的摇篮,对于这一产业之问,自然也是学院讲师、学员必须回答的问题。 得其法者事半功倍,不得其法者事倍功半。 11月4日,百度黄埔学院第四期开启为期6周的线上预科班。就是通过AI思维、AI方法、AI技术、AI选择等环环相扣的课程,让大家“得法前行”,找到新技术推动产业升级的全流程方法 上图:黄埔学院第四期预科班课程表 跨上AI的战车,从技术逻辑和商业逻辑双面看 跨上AI战车的第一步,企业首先需要确认现阶段是否适合进行AI转型。如果对AI本身的逻辑缺乏深入的理解,究竟能不能使用、如何使用AI去落地就成了难题。结合飞桨实践落地过程中各行业AI应用案例,企业想成功应用AI系统,要遵循技术和商业逻辑两大原则。 AI应用可行的两大前提 AI作为决策系统的前提:信息采集和自动化实施要完备 从技术逻辑来看, AI应用作为一个决策系统不是单独存在的,它包含完整的上下游。上游是我们采集的数据信息,下游则是我们要执行实施的自动化。 因此,当企业发现所在的应用场景上下游都完备,只需 AI决策系统时,企业AI场景应用落地的步伐就可以加快。像如今互联网、金融领域AI应用最先落地,重要原因便是其产业链上下游完备。 AI要满足商业逻辑的前提:对关键业务的效率提升要大于付出的成本 目前,中国无人超市的技术已非常成熟,但依然没有在中国看到遍地的无人超市。是因为今天要实现无人超市的技术所花费的成本高于两个店员的人力成本。所以无人超市这个技术虽已经实现了效率上的大幅提升,但是因为效率提升程度不及花费的成本,所以目前还只能是实验田。 所以,快速跨上AI战车还需要考虑背后的商业逻辑。企业之所以运用AI技术满足我们今天的商业发展,是想提升企业自身的关键业务。同时“成本”作为企业转型考虑的重要因素之一,也成为选择AI应用的关键项。总结来看就是,选择AI技术提升效率不能只“帮扶”企业效率提升一小步,但却要“冒险”付出大成本。 ——百度杰出架构师&飞桨产品负责人 毕然《跨上AI的战车》 从学术研究到产业落地,“多法结合”推动整个系统准确率提升 要想习得真经,企业除了明白是否适合AI转型,还需要切实的了解如何运用AI实现应用。我们发现在产业落地这个过程中,通常会面临三大问题: 数据的规模和平衡性 模型的泛化能力及鲁棒性 场景领域的长尾、变化需求 面对AI技术难题的正攻法思路 我们有很多学术的方法去解决、突破技术难题,大家都可以去尝试。也可以通过各种论文去了解先进前沿的技术。但还有很多时候,整个系统的准确率并不是单纯的一个算法模块的准确率。可能你需要尝试配合一个传统算法,或者是配合一个流程的设计,甚至必要的时候可以配合人员操作的兜底方式来协同配合,达到真正的场景可用。 这里提到一个信任机制的建立,比如医疗场景,如果是一个全自动的系统,患者能不能接受这样一个机器直接给出结论?很多时候我们当然希望它是一个全自动的系统,但是这里往往要考虑的就是一个场景的容错范围,人命关天,就完全不能弄错了。还有一些零售结账的场景,质检上需要9个9,很多这样的场景,可能目前还是需要一个human in the loop。 ——百度资深研发工程师 张洋《产业计算机视觉落地难点与应对》 掌握主流和全面的技术,复杂任务先拆分简化,抽象问题是关键能力 当遇到复杂场景的问题时,将其拆分成一些小的任务与目标。因为小的任务相对简单一些,而复杂任务相对难一些,把复杂任务拆分成小任务本身就是一个技术建模的过程。拆分成小的任务之后,针对每一个小任务,我们都可以进行非常细致的技术选型。 抽象问题的拆分举例 这在我们实际场景中其实是非常常用的,因为真实的业务场景它可能不是一个任务,而是众多任务。比如说文本纠错、复杂的问答系统、复杂的对话系统等,它可能包含了众多的子任务。 ——百度资深研发工程师&百度文心ERNIE平台技术负责人龚健《产业NLP任务的技术选型与落地》 很多油田电力和工矿企业,它里面存在很多传统的机械指针式的仪表,这种仪表与数字仪表不同,机械表无法将表具的读数实时发送到监控系统,需要人工进行读表检查,这种表大部分是用来做监控用的,比如说监控设备的运行是否正常,而且这些表大部分是部署在厂区的各个位置,为了监测仪器是否工作正常,或者系统是否工作正常,工厂或者是一些企业都要派大量的人力到现场去进行巡检,检查表的读数是否正常,进而去判断整套系统或者仪器是否正常,这样的话就会消耗很多企业的人力成本,而且每次巡检周期长,频次非常低。实际解决问题之前,需要清晰的梳理出表计识别项目会面临到的难点问题: 表具种类多,相似度大,样本采集困难且不易分类 在复杂环境下,读数精确度不易保证 室外环境恶劣导致读数难以识别 技术方案拆解:目标检测+语义分割 所以我们没选择直接识别的方案,因为直接识别会遇到多尺度的问题。我们选用了更为复杂的方案:目标检测+语义分割,当我的读数难度变小了,精确度会得到更好的保证,这是最核心的。同时,因为模型复杂度的提升,我的推理时间变长了。不过没关系,因为在表计巡检的场景里,对时效要求并不高。所以很多时候,大家问这样的方案好不好那样的方案好不好,还是要首先去回答自己的问题,你的场景到底有什么样的限制条件。没有最好,只有最适合。 ——中兴克拉科技首席AI系统架构师 黄埔学院二期学员朱玉石《能源电力传统仪表综合无人巡检》 Last but not least, 优选工具 京东物流最开始自己要做快递单识别,其工程是非常复杂的。你所在小区的四级地址是什么?估计很多人没有清晰的概念,有的用户名字叫“一个橘子”,收件地址中还附着着大量的附言词。在这之中我们要做大量的分词、文本解析、结构化处理、信息的补全、消歧等,最后进行语义相似度的打分和匹配。有监督+无监督的方法结合去应用。整个团队花了很长的时间,去建立一整套的系统。 京东物流快递单识别所使用的ERNIE API 完成了这些工作,跨过了这些坑之后,当我遇到百度文心ERNIE,瞬间觉得豁然开朗,觉得它比我更懂我应该做什么。刚才说的所有那些很复杂的东西,从以前的 Framework转到飞桨以后,前面三个API其实就搞定了。最后一个API地址识别,我画了小太阳,对我们的工作效率提升带来了很大的帮助。很多应届生同学他们进来就能很快地上手。对于他们来说,一开始觉得这件事太难了,可能很难坚持下来。在新同学还不是特别懂深度学习的原理情况下,能够把整个技术做出来,能够有结果,这是件非常让人兴奋的事。 ——京东物流智能供应链产业平台研发总监、黄埔学院三期学员 王梓晨《京东物流快递单智能识别》 听完这些课程,你是不是对AI产业落地有了不一样,亦或是更深刻的认识?是不是也想加入其中,成为推动产业落地的AI架构师? 对于从黄埔学院毕业的135名学员,授课老师们一直在强调“AI架构师”要具备从复杂的业务问题抽象出AI技术问题的能力,要对主流AI训练和部署落地流程有充分的掌握,结合相关算法技术和业务场景需求,做出恰当的AI技术选型,设计高效合理、并具有充分预见性的实现方案。还要在业务场景下建立起以AI技术应用为核心的完备技术体系,充分发挥AI技术对业务的助力作用,对技术团队产生很强的技术影响力。置身其中的技术人都说,AI落地不是学术问题,而是创意问题。 关键是,如何有创意的使用AI技术。 12月1日,百度黄埔学院第四期开放线下正式班申请,需要你带着“AI项目开题报告”有备而来,与百度T10+架构师一起,面对面探索产业智能化升级的新场景、新未来。 点击链接,立即报名: https://iwenjuan.baidu.com/?code=yc4gxt&user=outsidecsdn 本文同步分享在 博客“飞桨PaddlePaddle”(CSDN)。如有侵权,请联系 support@oschina.cn 删除。本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

优秀的个人博客,低调大师

专访井通科技CTO杨建新

2018区块链技术及应用峰会 (BTA)·中国 倒计时4天 2018,想要follow最火的区块链技术?你还差一场严谨纯粹的技术交流会——2018区块链技术及应用峰会(BTA)·中国将于2018年3月30-31日登陆北京喜来登长城饭店。追求专业性?你要的这里全都有:当超强嘉宾阵容遇上业界同好的脑洞大联欢,1+1=无限可能,目前门票火热进行中,购票请点击文末“阅读原文”链接,就等你了! 抢票链接: https://huiyi.csdn.net/activity/product/goods_list?project_id=3768 珠联璧合?不,是珠链璧合。币链结合,才能使得区块链技术和实际场景充分结合。 作为新一代颠覆性的应用,区块链技术已成为当下最火热的话题。除了行业大佬之间的高屋建瓴的论道之外,区块链终究要回到技术与落地应用的范畴。在区块链

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册