Framework

前沿研究丨基于驾驶脑的智能驾驶车辆硬件平台架构

老子叫甜甜 提交于 2020-09-30 17:44:56
本文选自中国工程院院刊《Engineering》2018年第4期 作者: 李德毅,高洪波 来源:A Hardware Platform Framework for an Intelligent Vehicle Based on a Driving Brain[J].Engineering,2018,4(4):464-470. 编者按 智能驾驶车辆试验平台是人工智能科学、认知科学、控制科学等多个学科领域的最新理论与实践的成果,也是研究智能驾驶理论与技术的基础。不同智能驾驶试验平台的传感器型号、数量、安装位置各不相同,导致传感器信息处理模块也各不相同;不同驾驶地图,其提供信息的粒度也没有固定标准,由此构成的智能驾驶系统软件模块的数量、接口各不相同。 中国工程院李德毅院士科研团队在中国工程院院刊《Engineering》撰文指出,基于以驾驶脑为核心的智能驾驶车辆软件与硬件架构,决策模块将不直接与传感器信息处理模块发生关联,通过驾驶认知的形式化语言,将驾驶认知形式化,由驾驶脑认知形成决策。驾驶认知的形式化降低了传感器数量、类型、安装位置的变化对整个软件架构的影响,使得软件架构可以在不同传感器配置车辆平台上方便地移植。 一、引言 智能驾驶车辆试验平台是人工智能科学、认知科学、控制科学等多个学科领域的最新理论与实践的成果,也是研究智能驾驶理论与技术的基础。 早在20世纪50年代

面试大厂必问的ForkJoin框架剖析【建议收藏】

旧街凉风 提交于 2020-09-30 16:16:19
点关注,不迷路!如果本文对你有帮助的话不要忘记点赞支持哦! 概述 image.png 和传统的线程池使用 AQS 的实现逻辑不同, ForkJoin 引入全新的结构来标识: ForkJoinPool: 用于执行 ForkJoinTask 任务的执行池,不再是传统执行池 Worker+Queue 的组合模式,而是维护了一个队列数组 WorkQueue ,这样在提交任务和线程任务的时候大幅度的减少碰撞。 WorkQueue: 双向列表,用于任务的有序执行,如果 WorkQueue 用于自己的执行线程 Thread ,线程默认将会从top端选取任务用来执行 - LIFO。因为只有owner的Thread才能从top端取任务,所以在设置变量时, int top; 不需要使用 volatile 。 ForkJoinWorkThread: 用于执行任务的线程,用于区别使用非ForkJoinWorkThread线程提交的task;启动一个该Thread,会自动注册一个WorkQueue到Pool, 这里规定,拥有Thread的WorkQueue只能出现在WorkQueue数组的奇数位 ForkJoinTask: 任务, 它比传统的任务更加轻量,不再对是 RUNNABLE 的子类,提供 fork / join 方法用于分割任务以及聚合结果。 为了充分施展并行运算,该框架实现了复杂的 worker

从 BIO、NIO 聊到 Netty,最后还要实现个 RPC 框架!

流过昼夜 提交于 2020-09-30 06:04:57
大家好,我是 「后端技术进阶」 作者,一个热爱技术的少年。 文章目录 还是要从 BIO 说起 传统的阻塞式通信流程 一个简单的 demo 资源消耗严重的问题 线程池虽可以改善,但终究未从根本解决问题 再看 NIO 初识 NIO NIO 核心组件解读 NIO 为啥更好? 使用 NIO 编写代码太难了 重要角色 Netty 登场 Netty 特点 使用 Netty 能做什么? 哪些开源项目用到了 Netty? 后记 觉得不错的话,欢迎 star!ღ( ´・ᴗ・` )比心 Netty 从入门到实战系列文章地址: https://github.com/Snailclimb/netty-practical-tutorial 。 RPC 框架源码地址: https://github.com/Snailclimb/guide-rpc-framework 老套路,学习某一门技术或者框架的时候,第一步当然是要了解下面这几样东西。 是什么? 有哪些特点? 有哪些应用场景? 有哪些成功使用的案例? … 为了让你更好地了解 Netty 以及它诞生的原因,先从传统的网络编程说起吧! 还是要从 BIO 说起 传统的阻塞式通信流程 早期的 Java 网络相关的 API( java.net 包) 使用 Socket(套接字)进行网络通信,不过只支持阻塞函数使用。 要通过互联网进行通信,至少需要一对套接字:

网络安全工程师教你:如何使用Kali Linux进行Metasploit******?【初探】

天大地大妈咪最大 提交于 2020-09-29 05:37:21
Metasploit***测试框架基础(一) 一、背景介绍 Metasploit就是一个漏洞框架。它的全称叫做The Metasploit Framework,简称叫做MSF。Metasploit作为全球最受欢迎的工具,不仅仅是因为它的方便性和强大性,更重要的是它的框架。它允许使用者开发自己的漏洞脚本,从而进行测试。Metasploit(msf)究竟威力如何呢?接下来让我们一起学习! 二、资源装备 1.安装好Kali Linux的虚拟机一台; 2.整装待发的小白一个。 三、战略安排 3.1 在Kali Linux中利用图形化界面启动Metasploit(msf)框架,推荐小白使用,如下图所示。 步骤:在搜索框检索msf,选择metasploit framework点击进行入。 3.2 成功利用图形化界面启动metasploit(msf)***框架,如下图所示可得metasploit***框架的版本信息。 3.3 利用密令行模式启动metasploit(msf)***框架,如下图所示。 命令:msfconsole 3.4 metasploit(msf)***框架正在启动中,如下图所示。 3.5 metasploit(msf)***框架启动成功,如下图所示。 3.6 利用help命令获取metasploit(msf)***框架的操作命令,如下图所示。 命令:help 3.7

阿里研究员谷朴:警惕软件复杂度困局

拜拜、爱过 提交于 2020-09-28 08:42:19
**简介:** 对于大型的软件系统如互联网分布式应用或企业级软件,为何我们常常会陷入复杂度陷阱?如何识别复杂度增长的因素?在代码开发以及演进的过程中需要遵循哪些原则?本文将分享阿里研究员谷朴关于软件复杂度的思考:什么是复杂度、复杂度是如何产生的以及解决的思路。较长,同学们可收藏后再看。 ![1.png](https://ucc.alicdn.com/pic/developer-ecology/aa880b82b14540b588cd595bcc03ad81.png "1.png") 作者 | 张瓅玶(谷朴) 阿里巴巴研究员 **导读:**对于大型的软件系统如互联网分布式应用或企业级软件,为何我们常常会陷入复杂度陷阱?如何识别复杂度增长的因素?在代码开发以及演进的过程中需要遵循哪些原则?本文将分享阿里研究员谷朴关于软件复杂度的思考:什么是复杂度、复杂度是如何产生的以及解决的思路。较长,同学们可收藏后再看。 > 软件设计和实现的本质是工程师相互通过“写作”来交流一些包含丰富细节的抽象概念并且不断迭代过程。> 另外,如果你的代码生存期一般不超过 6 个月,本文用处不大。 软件架构的核心挑战是快速增长的复杂性 ================== 越是大型系统,越需要简单性。 大型系统的本质问题是复杂性问题。互联网软件,是典型的大型系统,如下图所示,数百个甚至更多的微服务相互调用/依赖

阿里研究员谷朴:警惕软件复杂度困局

一笑奈何 提交于 2020-09-27 04:47:24
作者 | 张瓅玶(谷朴) 阿里巴巴研究员 **导读:**对于大型的软件系统如互联网分布式应用或企业级软件,为何我们常常会陷入复杂度陷阱?如何识别复杂度增长的因素?在代码开发以及演进的过程中需要遵循哪些原则?本文将分享阿里研究员谷朴关于软件复杂度的思考:什么是复杂度、复杂度是如何产生的以及解决的思路。较长,同学们可收藏后再看。 软件设计和实现的本质是工程师相互通过“写作”来交流一些包含丰富细节的抽象概念并且不断迭代过程。> 另外,如果你的代码生存期一般不超过 6 个月,本文用处不大。 软件架构的核心挑战是快速增长的复杂性 越是大型系统,越需要简单性。 大型系统的本质问题是复杂性问题。互联网软件,是典型的大型系统,如下图所示,数百个甚至更多的微服务相互调用/依赖,组成一个组件数量大、行为复杂、时刻在变动(发布、配置变更)当中的动态的、复杂的系统。而且,软件工程师们常常自嘲,“when things work, nobody knows why”。 图源: https://divante.com/blog/10-companies-that-implemented-the-microservice-architecture-and-paved-the-way-for-others/ 如果我们只是写一段独立代码,不和其他系统交互,往往设计上要求不会很高,代码是否易于使用、易于理解

Graph Convolution Neural Network

无人久伴 提交于 2020-09-26 13:37:23
文章目录 往期文章链接目录 Convolutional graph neural networks (ConvGNNs) GCN Framework GCN v.s. RecGNN What is Convolution Spatial-based ConvGNNs Message Passing Neural Network (MPNN) Introduction to MPNN Shortage of the MPNN framework GraphSAGE (SAmple and aggreGatE) Overview of GraphSAGE Aggregator Fuctions PATCHY-SAN Overview of PATCHY-SAN Two problems considered in PATCHY-SAN Steps of PATCHY-SAN 往期文章链接目录 往期文章链接目录 Convolutional graph neural networks (ConvGNNs) Convolutional graph neural networks (ConvGNNs) generalize the operation of convolution from grid data to graph data. The main idea is to

Cnstream源码剖析----Module基类

烂漫一生 提交于 2020-09-26 13:27:47
源码地址:https://github.com/Cambricon/CNStream/blob/master/framework/core/src/cnstream_module.cpp 关于Module基类,是cnstream的代码合集的核心部分。是用户和开发者,设计一个新的数据处理模块,绕不开的地方。 详细的介绍可以阅读CNstream用户手册:http://forum.cambricon.com/index.php?m=content&c=index&a=lists&catid=85 我们来看一下在这个基类的代码中,详细的做了什么: 1 static SpinLock module_id_spinlock_; 2 static uint64_t module_id_mask_ = 0 ; 3 static size_t _GetId() { 4 SpinLockGuard guard(module_id_spinlock_); 5 for (size_t i = 0 ; i < sizeof (module_id_mask_) * 8 ; i++ ) { 6 if (!(module_id_mask_ & ((uint64_t) 1 << i))) { 7 module_id_mask_ |= (uint64_t) 1 << i; 8 return i; 9 } 10 }

Cnstream源码剖析----Module基类

霸气de小男生 提交于 2020-09-26 12:06:59
源码地址:https://github.com/Cambricon/CNStream/blob/master/framework/core/src/cnstream_module.cpp 关于Module基类,是cnstream的代码合集的核心部分。是用户和开发者,设计一个新的数据处理模块,绕不开的地方。 详细的介绍可以阅读CNstream用户手册:http://forum.cambricon.com/index.php?m=content&c=index&a=lists&catid=85 我们来看一下在这个基类的代码中,详细的做了什么: 1 static SpinLock module_id_spinlock_; 2 static uint64_t module_id_mask_ = 0 ; 3 static size_t _GetId() { 4 SpinLockGuard guard(module_id_spinlock_); 5 for (size_t i = 0 ; i < sizeof (module_id_mask_) * 8 ; i++ ) { 6 if (!(module_id_mask_ & ((uint64_t) 1 << i))) { 7 module_id_mask_ |= (uint64_t) 1 << i; 8 return i; 9 } 10 }

WordPress升级遇到Briefly unavailable for scheduled maintenance解决办法

故事扮演 提交于 2020-09-25 09:01:17
今天把本地一个站点升级到wp 4.5.3版本是遇到以上信息提示,大体意思是暂时无法安排维护,请一分钟后检查核对,玩了那么久wordpress第一次遇上,百度了一下,都一个答案,分享一下,如果你也遇上同样的错误,或许有帮助。 错误提示: Briefly unavailable for scheduled maintenance. Check back in a minute. 这时检查我们的网站根目录,多了一个这样的文件 .maintenance,直接 删除 就可以了。 打开文件里面是: <?php $upgrading = 1469284886; ?> 您可能感兴趣的文章: ▪ wordpress统计发布文章数量 ▪ wordpress短代码显示用户注册日期 ▪ 开启Gzip压缩加快你的wordpress网站加载浏览速度 ▪ Wordpress最棒的后台框架Redux Framework使用举例 ▪ 利用Bootstrap构建你的响应式WordPress主题( 七) ▪ Wordpress主题制作基本模版文件以及基本函数 ▪ 利用Bootstrap构建你的响应式Wordpress主题(二) ▪ 给你的wordpress洗洗头wp_head和remove_action函数 ▪ 自己动手在你的主机上安装wordpress图文教程 ▪