Protocol Buffers

糟心的caffe+ matlab编译路程

时间秒杀一切 提交于 2021-02-16 14:12:18
####配置:Ubuntu16.04+MatlabR2016b+cuda8.0+cudnn5.1+caffe 配置caffe真的不是很容易,特别是对初次接触Linux的同学,各种报错(ノ_;\( `ロ´),搞了好几天才解决 caffe安装可能出现的问题 ####可能会出现的问题 问题1."libcudart.so.8.0 cannot open shared object file: No such file or directory" 解决方法: 解决办法是将一些文件复制到/usr/local/lib文件夹下: 注意自己CUDA的版本号! sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig 问题2."libcudnn.so.5 cannot

Spring boot 之 dubbo 无xml 简单入门

我们两清 提交于 2021-02-16 10:03:18
Dubbo简介 Dubbo框架设计一共划分了10个层,而最上面的Service层是留给实际想要使用Dubbo开发分布式服务的开发者实现业务逻辑的接口层。图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口, 位于中轴线上的为双方都用到的接口。 下面,结合Dubbo官方文档,我们分别理解一下框架分层架构中,各个层次的设计要点: 服务接口层(Service):该层是与实际业务逻辑相关的,根据服务提供方和服务消费方的业务设计对应的接口和实现。 配置层(Config):对外配置接口,以ServiceConfig和ReferenceConfig为中心,可以直接new配置类,也可以通过spring解析配置生成配置类。 服务代理层(Proxy):服务接口透明代理,生成服务的客户端Stub和服务器端Skeleton,以ServiceProxy为中心,扩展接口为ProxyFactory。 服务注册层(Registry):封装服务地址的注册与发现,以服务URL为中心,扩展接口为RegistryFactory、Registry和RegistryService。可能没有服务注册中心,此时服务提供方直接暴露服务。 集群层(Cluster):封装多个提供者的路由及负载均衡,并桥接注册中心,以Invoker为中心,扩展接口为Cluster、Directory

Netty进阶

孤街浪徒 提交于 2021-02-15 00:07:37
一、Netty核心模块 BootStrap:客户端程序的启动引导类 ServerBootStrap:服务端程序的启动引导类 它们的常用方法有: - group:设置线程组 - channel:指定通道的实现类 - option:给channel添加配置 - childOption:给接收到的channel添加配置 - handler:设置bossGroup的handler - childHandler:设置workGroup的handler Selector:用来接收注册的channel的。当往selector中注册channel后,selector就会自动不断地轮询这些channel是否有就绪的IO事件。 ChannelHandler:是一个接口,处理IO事件或者拦截IO事件,也就是说你拿到channel后想干的事情都通过channelHandler来完成。 ChannelPipeline:是一个handler的集合,负责处理和拦截入站事件和出站操作。一个channel包含了一个ChannelPipeline,而ChannelPipeline又维护了一个由ChannelHandlerContext组成的双向链表,并且每个ChannelHandlerContext中又关联着一个ChannelHandler。入站事件就是从链表头传递到链表尾的handler

C#笔记——7.序列化与反序列化

让人想犯罪 __ 提交于 2021-02-12 07:59:34
序列化与反序列化简介 : 序列化指将对象转换为字节流的过程,与之相反的便是反序列化,即将字节流转换为对象的过程。 .NET中进行对象序列化的几种方式 : 二进制序列化 :对象序列化之后是二进制形式的,通过System.Runtime.Serialization.Formatters.Binary命名空间下的BinaryFormatter类来实现序列化操作。 SOAP序列化 :对象序列化之后的结果符合SOAP协议,即可以使用SOAP协议传输,通过System.Runtime.Serialization.Formatters.Soap命名空间下的SoapFormatter类来实现序列化操作。 XML序列化 :将对象序列化为XML形式,可以通过位于System.Xml.Serialization命名空间下XmlSerializer类来实现,要读取XML中的数据可以直接使用XmlTextReader、XmlDocument、XPath, 也可以使用LINQ TO XML或者反序列化的方法从XML中读取数据。 Json序列化 :通过序列化将.net对象转换为JSON字符串,在.NET中操作JSON,可以使用 LitJson 或者 Json.NET ,也可以使用.NET内建的System.Runtime.Serialization.Json,相比较而言Json.NET功能更加强大一些,JSON

腾讯IEG开源GAME AI SDK:自动化测试吃鸡、MOBA类游戏

心不动则不痛 提交于 2021-02-09 00:09:44
视学算法报道 编辑:陈萍、魔王 转载自公众号:机器之心 SDK 还能自动玩游戏? 这个 SDK 有点「酷」 。 近日,腾讯互娱(IEG)开源了一款名为 GAME AI SDK 的自动化测试平台,该平台封装好了多种工具供开发者使用,目前支持的游戏类型有跑酷类、吃鸡类、射击类、MOBA 类等。 项目地址:https://github.com/Tencent/GameAISDK 平台内置的「天天酷跑」示例。左图为未训练随机做动作,右图是训练好的效果。 SDK(软件开发工具包)一般是软件工程师为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件时可使用的开发工具集合。 似乎有些抽象。在实际项目中,我们只需记住,SDK 是手游渠道提供的,集成了用户登录、社区功能、社交分享功能、数据后台统计功能的功能模块。接入 SDK 后,游戏厂商和渠道都要对 SDK 包进行测试,测试通过才能上线。 看了上文展示的酷跑动图效果,是不是想上手试试吃鸡类、射击类的游戏体验呢?这个开源项目可以满足你的需求,它支持使用者进行项目接入以及二次开发。 AI SDK 平台 AI SDK 平台是一个基于游戏图像来开发游戏 AI 的开源工具包。工具包主要完成了 UI 检测、游戏内元素识别、AI 算法(DQN、IM)等功能。开发者可以基于此工具包完成游戏自动化测试。 目前该平台已支持的游戏类型有跑酷类、吃鸡类、射击类

ASP.NET Core Web API

允我心安 提交于 2021-01-23 04:58:26
1.简单介绍   ASP.NET Core Web API 是 ASP.NET Core MVC 的一个功能。ASP.NET Core MVC 包含了对 Web API 的支持。可以构建多种客户端的 HTTP 服务。ASP.NET Core Web API可用于在 .NET Core 上构建 RESTful 应用程序。   框架包含对 HTTP 内容协商的支持,内置支持以 JSON 或 XML 格式化的数据。编写自定义格式化程序已添加对自有格式的支持。   使用链接生成对超媒体的支持。启用对跨资源共享(CORS)的支持,以便 Web API 可以在多个 Web应用程序之间共享。   例如,新建一个 API 项目,默认包含一个 ValuesController: [Route( " api/[controller] " )] [ApiController] public class ValuesController : ControllerBase { // GET api/values [HttpGet] public ActionResult<IEnumerable< string >> Get() { return new string [] { " value1 " , " value2 " }; } // GET api/values/5 [HttpGet( " {id}

Java微服务选型Dubbo V.S SpringCloud

烈酒焚心 提交于 2021-01-20 03:07:09
点击上方“ JavaEdge ”,关注公众号 设为“ 星标 ”,好文章不错过! RPC框架主要组成 通信框架 通信协议 序列化和反序列化格式 1 分类 RPC框架主要分为: 1.1 绑定语言平台 1.1.1 Dubbo 国内最早开源的RPC框架,由阿里巴巴公司开发并于2011年末对外开源,仅支持Java 架构 Consumer 服务消费者 Provider 服务提供者 Registry 注册中心 Monitor是监控系统 交互流程 Consumer 通过 Registry 获取到 Provider 节点 再通过Dubbo的客户端SDK与Provider建立连接,并发起调用 Provider 通过Dubbo的服务端SDK接收到 Consumer 请求 处理后再把结果返回给Consumer 服务消费者、提供者都需引入Dubbo的SDK才来完成RPC调用,因为Dubbo是用Java实现,所以要求服务消费者、提供者也都必须用Java。 主要实现 默认采用Netty作为通信框架 除了支持私有的Dubbo协议外,还支持RMI、Hession、HTTP、Thrift 支持多种序列化格式,比如Dubbo、Hession、JSON、Kryo、FST 1.1.2 Motan 微博内部使用的RPC框架,于2016年对外开源,仅支持Java。 架构 与Dubbo类似,都要在Client端(服务消费者

IDEA下使用protobuf2(java)

余生长醉 提交于 2021-01-17 09:12:04
[TOC] 一、介绍 Google提供一个具有高效的<u>协议数据交换格式</u>工具库(类似Json),但相比于Json,Protobuf有更高的转化效率,时间效率和空间效率都是JSON的3-5倍。google 提供了三种语言的实现:java、c++ 和 python,每一种实现都包含了相应语言的编译器以及库文件。 二、特点 Xml、Json是目前常用的数据交换格式,它们直接使用字段名称维护序列化后类实例中字段与数据之间的映射关系,一般用字符串的形式保存在序列化后的字节流中。消息和消息的定义相对独立,可读性较好。但序列化后的数据字节很大,序列化和反序列化的时间较长,数据传输效率不高。 Protobuf和Xml、Json序列化的方式不同,<u>采用了二进制字节的序列化方式</u>,用字段索引和字段类型通过算法计算得到字段之前的关系映射,从而达到更高的时间效率和空间效率,特别适合对数据大小和传输速率比较敏感的场合使用。 三、结构 <u>proto文件定义了协议数据中的实体结构(message ,field)。</u> 举例如下: //要生成的类Person message Person { required string name = 1; required int32 id = 2; optional string email = 3; enum PhoneType {

tensorflow c++接口的编译安装与一些问题记录

橙三吉。 提交于 2021-01-13 21:01:17
参考 这篇文章 安装,依次安装bazel,protocbuf,eigen3,然后下载tensorflow源码,编译c++ api,将编译结果拷贝到搜索路径 最后测试案例时遇到一些问题 (1)fatal error: absl/strings/string_view.h 解决方案 ,git clone https://github.com/abseil/abseil-cpp,然后把该库加到搜索目录里面 (2)对‘tensorflow::SessionOptions::SessionOptions()’未定义的引用 找不到正确的libtensorflow_cc.so,添加动态链接库路径 (3)tensorflow::status::tostring[abi:cxx11]() const 解决方案 ,编译选项设置-D_GLIBCXX_USE_CXX11_ABI=0 最终测试代码 1 #include <tensorflow/core/platform/env.h> 2 #include <tensorflow/core/ public /session.h> 3 4 #include <iostream> 5 6 using namespace std; 7 using namespace tensorflow; 8 9 int main() 10 { 11 Session*