序列化

Pytorch_Part7_模型使用

社会主义新天地 提交于 2020-03-28 12:43:55
共同贡献 PyTorch常见错误与坑汇总文档 : 《PyTorch常见报错/坑汇总》 一、模型保存与加载 1. 序列化与反序列化 net = LeNet2(classes=2019) # 法1: 保存整个Module,不仅保存参数,也保存结构 torch.save(net, path) net_load = torch.load(path_model) # 网络名称、结构、模型参数、优化器参数均保留 # 法2: 保存模型参数(推荐,占用资源少) state_dict = net.state_dict() torch.save(state_dict , path) net_new = LeNet2(classes=2019) net_new.load_state_dict(state_dict_load) 2. 断点续训练 保存: checkpoint = { "model_state_dict": net.state_dict(), "optimizer_state_dict": optimizer.state_dict(), "epoch": epoch } path_checkpoint = "./checkpoint_{}_epoch.pkl".format(epoch) torch.save(checkpoint, path_checkpoint) 恢复: # ======

IDEA自动生成序列化ID

江枫思渺然 提交于 2020-03-27 16:32:35
3 月,跳不动了?>>> 原文链接: https://victorfengming.gitee.io/2019/10/30/jetbrains-idea-serialID/ idea是十分智能的Java集成开发环境 而我们在用实体类继承 java.io.Serializable后,需要设置序列化ID。 java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较,如果相同则认为是一致的,便可以进行反序列化,否则就会报序列化版本不一致的异常。 而IDEA,默认是不支持自动生成序列化ID的(我使用的是IDEA2019版本)。 今天小编就交大家如何自定义设置自动生成序列化 1、安装 serialVersionUID 插件: 若你的IDEA已安装,则跳过此步骤; 若未安装,参考 IDEA插件安装 ,搜索插件时使用关键词“serialVersionUID ” 2、设置你的IDEA为检查序列化ID 3、重启IDEA 有的版本可以不重启,比如小编使用的 IntelliJ IDEA 2019.2.3 (Ultimate Edition) 就不需要重新启动,设置好后点击确定即可 这个可以根据实际情况而定 4

C#的基本知识点

血红的双手。 提交于 2020-03-27 08:41:38
1. 什么是类 ? 什么是结构体 ? 二者有什么区别 ? 相同点是什么 ? 你经常使用类还是结构体 ? 为什么 ? 类:同一类对象共同属性和行为的抽象用户自定义的 结构体:同一类共同属性和行为的抽象 二者区别:类:引用类型 结构体:值类型 二者相同点:对共同属性和行为的抽象 2.. 怎样理解静态变量和静态方法? 静态构造函数的作用是什么 ? 静态变量:属于类,不属于对象 静态方法:不用创建类的实例,直接使用类的方法,方法变量在栈上, 静态构造函数的作用:初始化类的静态数据成员,在代码加载时执行; 程序中无法调用静态构造函数,此前的任何修饰符都是无效的; 静态构造函数,没有参数 3. 值类型与引用类型有什么区别? 值类型:数据存储在栈上,直接存储数据本身 引用类型:数据存储在堆上,在栈上引用其地址 二者区别: l 所有内置对象,除了 object 和 string 以外,都是值类型,所有用户定义类型,除了结构体都是引用类型; 4.override 与重载有什么区别? Override:覆盖:在继承关系中,父类中的虚方法,在子类中需要重写时 Overload:重载:同一个类中,函数名相同,参数列表不同,实现不同功能 5. 你在什么情况下会用到虚方法?它与接口有什么不同? 子类要重写父类中的方法时,父类中方法应声明为虚方法; 接口:只有方法声明,没有方法体,可以有属性和索引器(都是方法)

Django 会话session

只谈情不闲聊 提交于 2020-03-26 19:26:55
因为因特网HTTP协议的特性,每一次来自于用户浏览器的请求(request)都是无状态的、独立的。通俗地说,就是无法保存用户状态,后台服务器根本就不知道当前请求和以前及以后请求是否来自同一用户。对于静态网站,这可能不是个问题,而对于动态网站,尤其是京东、天猫、银行等购物或金融网站,无法识别用户并保持用户状态是致命的,根本就无法提供服务。可以尝试将浏览器的cookie功能关闭,会发现将无法在京东登录和购物。 为了保持连接状态,网站会通过用户的浏览器在用户机器内被限定的硬盘位置中写入一些数据,也就是所谓的Cookie。通过Cookie可以保存一些诸如用户名、浏览记录、表单记录、登录和注销等各种数据。但是这种方式非常不安全,因为Cookie保存在用户的机器上,如果Cookie被伪造、篡改或删除,就会造成极大的安全威胁,因此,现代网站设计通常将Cookie用来保存一些不重要的内容,实际的用户数据和状态还是以Session会话的方式保存在服务器端。 Session就是在服务器端的‘Cookie’,将用户数据保存在服务器端,远比保存在用户端要安全、方便和快捷得多。 Session依赖Cookie!但与Cookie不同的地方在于Session将所有的数据都放在服务器端,用户浏览器的Cookie中只会保存一个非明文的识别信息,比如哈希值。 Session是大多数网站都需要具备的功能

java序列化与反序列化

烈酒焚心 提交于 2020-03-26 19:11:14
先描述下这里的业务: 我们有一个父类A,多个继承A的AA类、AB类、AC类,多了一些不同的业务字段。 业务分为多个端,如:甲端、乙端,通过kafka来交互数据,数据格式为一个VO,包含多个业务属性以外,还有一个List<A>属性引用类,这里实质内容还是AA、AB、AC类。 甲端封装好对应的参数后,传递给乙端进行解析时。json无法直接转成对应的AA、AB、AC实现类。其中的业务字段会丢失。 这就是疑问的地方??? 这里我们比较了一下fastJson和gson,最后采取gson来解决此问题。 fastJson 是通过注解形式。如: @JSONField(serializeUsing=ToSystemNameSerializer.class) 这里ToSystemNameSerializer.class是我们自定义的转换类,需要实现ObjectSerializer和ObjectDeserializer分别是fastjson的编码器和解码器接口 Gson 是同通过注册TypeAdapter。如: Gson.addTypeAdapter(Type,ToSystemNameSerializer) 然后使用gson来解析json,如果识别到Type类了,则使用我们定义的ToSystemNameSerializer来解析

对象的序列化和反序列化

给你一囗甜甜゛ 提交于 2020-03-26 17:06:09
定义: 对象序列化:, 就是将对象保存到磁盘中,或者在网络中传输对象 这种机制就是使用一个字节序列表示一个对象,该字节序列包含:对象类型,对象的数据和对象中存储的属性信息 字节序列化写到文件之后,相当于文件中持久的保存一个对象的信息 反之,该字节序列化还可以从文件中读取出来,重构对象,对它进行反序列化 要实现序列化和反序列化就要适用对象序列化流和对象反序列化 类的序列化由实现java.io.Serializable接口的类启用。不实现此接口的类将不会使任何状态序列化或反序列化 注意: 一个对象要想被序列化,该对象所属的类必须必须实现Serializable接口 ​ Serializable是一个标记接口,实现该接口,不需要重写任何方法 对象序列化流: ObjectOutputStream 将Java对象的原始数据类型和图形写入 OutputStream 。 可以使用 ObjectnputStream 读取 (重构)对象。可以通 过使用流的文件来实现对象的持久存储。如果流是网络套接字流,则可以在另一个主机 上或另-一个进程中重构对象 构造方法: ObjectOutputStream(OutputStreamout) : 创建一个写入指定的 OutputStream 的 ObjectOutputStream 序列化对象的方法: void writeObject(Object obj)

json的前世今生

我的未来我决定 提交于 2020-03-26 09:46:22
JSON,全称:JavaScript Object Notation,作为一个常见的轻量级的数据交换格式,应该在一个程序员的开发生涯中是常接触的。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。 Java是面向对象的语言,所以我们更多的在项目中是以对象的形式处理业务的,但是在传输的时候我们却要将对象转换为 JSON 格式便于传输,而且 JSON 格式一般能解析为大多数的对象格式,而不在乎编程语言。 在工作中, 我们不可避免的要使用json字符串, json已经成为我们resultful接口最常使用的数据格式, 相信大家也都不陌生了, 工作中或多或少也是用过的.今天我就是要来说说json数据处理时, 我们使用到的一些坑, 避免自己或者大家以后也落入到这线陷阱中, 特总结出来, 分享给大家, 希望对大家有帮助. 好吧, 我们进入正题, 大家在处理json字符串的时候, 最常使用的包和方法时什么嗯? 1. fastjson 1. 什么是fastjson 阿里官方给的定义是, fastjson 是阿里巴巴的开源JSON解析库,它可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以从 JSON 字符串反序列化到 JavaBean。 2. fastjson的优点

Redis 的键命令、HyperLogLog 命令、脚本命令、连接命令、服务器命令

北战南征 提交于 2020-03-26 09:33:19
Redis 的键命令、HyperLogLog 命令、脚本命令、连接命令、服务器命令 Redis 的键命令 Redis 的键命令主要用于管理 Redis 的键,如删除键、查询键、修改键及设置某个键等。 1. EXISTS 命令:判断键是否存在 2. KEYS 命令:查找键 KEYS 命令用于按照指定的模式(pattern)查找所有的 key。参数 pattern 类似于正则表达式。 ● KEYS*:表示匹配查找数据库中的所有 key。 ● KEYS r?dis:表示匹配 radis、redis、rxdis 等。 ● KEYS r*dis:表示匹配 rdis、redis、reeedis 等。 ● KEYS r[ae]dis:表示匹配 radis 和 redis,但是不会匹配 ridis。 遇到特殊符号需要使用「\」隔开(转义)。 3. OBJECT 命令:查看键的对象 OBJECT 命令用于从内部查看给定 key 的 Redis 对象。该命令通常用在除错或者为了节省空间而对 key 使用特殊编码的情况下。如果要用 Redis 来实现与缓存相关的功能,则可以使用 OBJECT 命令来决定是否清除 key。 OBJECT 命令有如下子命令: ● OBJECT REFCOUNT key 用于返回给定 key 引用所存储的值的次数,多用于除错。 ● OBJECT ENCODING key

Netty学习之实战RPC框架

荒凉一梦 提交于 2020-03-26 04:45:08
  先附上GitHub地址: https://github.com/kosamino/netty-root/tree/master/ym-netty-rpc   RPC的实现方式是本地通过远程代理对象调用远程服务。在互联网应用场景中,单体服务极度缺乏弹性伸缩能力,在大规模开发团队中也不便于开发管理。所以往往会把服务根据模块进行垂直拆分,也就是我们说的SOA服务化。服务拆分后系统跟系统直接的业务交互往往依赖于RPC框架进行通讯。   通常RPC的服务端会提供对应的接口jar包, 客户端通过rpc框架功能拿到对应接口的代理实例 ,整个调用过程数据的包装和通讯都是透明的。 一、调用流程   首先先来分析下RPC流程是怎样的,如下图:          我们包含三部分,用户、Netty客户端,Netty服务端: 用户发起调用; Netty客户端包装请求; 客户端对请求进行序列化(对象转ByteBuf); 序列化后发送消息到服务端; 服务端会对请求进行反序列化解码成具体对象; 服务端根据客户端发送的请求解析并准备返回结果; 服务端对返回结果序列化为ByteBuf; 客户端收到返回信息; 客户端对返回信息反列化得到Object信息; 客户端把结果返回给用户调用方,完成整个请求。 二、包含技术   如上所示,就是整个RPC框架的简单流程,在这个流程中需要使用哪些技术呢? 动态代理:通过java

weblogic-CVE-2020-2551-IIOP反序列化学习记录

老子叫甜甜 提交于 2020-03-25 17:30:13
CORBA: 具体的对CORBA的介绍安全客这篇文章 https://www.anquanke.com/post/id/199227 说的很详细,但是完全记住是不可能的,我觉得读完它要弄清以下几个点: 1.什么是CORBA? CORBA全称(Common ObjectRequest Broker Architecture)也就是 公共对象请求代理体系结构 ,是OMG(对象管理组织)制定的一种标准的面向对象应用程序体系规范。其提出是为了解决不同应用程序间的通信,曾是分布式计算的主流技术。 2.CORBA能干什么? 实现远程对象的调用 3.CORBA分为几部分? naming service //个人感觉类似于RMI的注册表服务 client side servant side 4.CORBA的通信流程是怎样的? 从大体上了解通信流程是怎样的,这里借用里面的图: 1.启动orbd作为naming service,会创建name service服务。 2.corba server向orbd发送请求获取name service,协商好通信格式 3.orbd返回保存的name service 4.corba server拿到name service后将具体的实现类绑定到name service上,这个时候orbd会拿到注册后的信息,这个信息就是IOR。 5.corba