07 2020 档案
摘要:表格中的数据,一般来说每一列是不同类的。而tensor中的数据,是同类的。所以我们先来学习把现实世界中不同类的数据,编码为tensor中的同类数据。 网络上有大量免费的表格数据可供下载,例如 https://github.com/caesar0301/awesome-public-data sets
阅读全文
摘要:本章将介绍以下内容: 各种真实世界中的数据如何使用tensor表示 处理不同类型的数据,包括表格数据,时间序列数据,文本,图片和医学图片等 如何从文件中读取数据 如何把数据转换为tensor 调整tensor的形状以使其适应神经网络模型
阅读全文
摘要:online documentationat http://pytorch.org/docs. 这里只是简介,不会过多涉及。 首先,大多数对tensor的操作和tensor之间的运算操作,都是定义的 torch 模块下的,同时也可以当做tensor的对象方法调用。 例如 转置 transpose 这
阅读全文
摘要:在Pytorch中,所有对tensor的操作,都是由GPU-specific routines完成的。tensor的device属性来控制tensor在计算机中存放的位置。 我们可以在tensor的构造器中显示的指定tensor存放在GPU上 也可以用 to 方法把一个CPU上的tensor复制到G
阅读全文
摘要:可以直接调用tensor的save和load方法对tensor进行保存和读取. 保存: 读取: 或者 但是这样保存下来的只能被Pytorch所识别。可以利用 h5py 库进行通用格式的保存。 首先要转换成numpy数组,然后调用 create_dataset 函数,保存为hdf5格式的文件 这里的
阅读全文
摘要:pytorh的tensor与numpy的转换,是通过Python buffer protocol完成的。所以这个转换时 zero-copy的。 tensor 》numpy 转换之后的numpy数组,与tensor共用一个基础buffer,所以如果tensor是存储在CPU上的,他们对数据的修改会相互
阅读全文
摘要:懒得分类的问题: 1 谈一下线程池用的参数 2 数据库的索引是怎么实现的?B树和B+树有什么区别 3 数据的线程安全问题?解决这些问题设置的事物隔离级别是怎样的 4 谈一谈单例设计模式,你还知道哪些设计模式? 5 JAVA如何保持线程同步?常用的锁有什么? 6 nginx是正向还是反向代理?有什么区
阅读全文
摘要:先说结论:不是。 经过JIT逃逸分析,未发生逃逸的,会被编译器优化未栈上分配 TaoBao VM GCIH技术,off-heap进行对象分配
阅读全文
摘要:版权声明:源出处:尚硅谷JVM 博客来源于大佬整理 堆空间的参数设置 -XX:PrintFlagsInitial: 查看所有参数的默认初始值 -XX:PrintFlagsFinal:查看所有的参数的最终值(可能会存在修改,不再是初始值) 具体查看某个参数的指令: jps:查看当前运行中的进程 jin
阅读全文
摘要:版权声明:源出处:尚硅谷JVM 博客来源于大佬整理 新概念:TLAB(堆当中的线程私有缓存区域) 为什么有TLAB(Thread Local Allocation Buffer) 众所周知堆区是线程共享区域,任何线程都可以访问到堆区中的共享数据。由于对象实例的创建在JVM中非常频繁,因此在并发环境下
阅读全文
摘要:版权声明:源出处:尚硅谷JVM 博客来源于大佬整理 常用调优工具 1.JDK命令行 2.Eclipse:Memory Analyzer Tool 3.Jconsole 4.VisualVM 5.Jprofiler 6.Java Flight Recorder 7.GCViewer 8.GC Easy
阅读全文
摘要:版权声明:源出处:尚硅谷JVM 博客来源于大佬整理 年轻代与老年代 1.存储在JVM中的java对象可以被划分为两类: 一类是生命周期较短的瞬时对象,这类对象的创建和消亡都非常迅速 另外一类对象时生命周期非常长,在某些情况下还能与JVM的生命周期保持一致 2.Java堆区进一步细分可以分为年轻代(Y
阅读全文
摘要:版权声明:源出处:尚硅谷JVM 博客来源于大佬整理 一个进程对应一个jvm实例,一个运行时数据区,又包含多个线程,这些线程共享了方法区和堆,每个线程包含了程序计数器、本地方法栈和虚拟机栈。 核心概述 1.一个jvm实例只存在一个堆内存,堆也是java内存管理的核心区域 2.Java堆区在JVM启动的
阅读全文
摘要:版权声明:源出处:尚硅谷JVM 博客来源于大佬整理 本地方法栈 1.Java虚拟机栈用于管理Java方法的调用,而本地方法栈用于管理本地方法(一般非Java实现的方法)的调用 2.本地方法栈,也是线程私有的。 3.允许被实现成固定或者是可动态拓展的内存大小。(和Java虚拟机栈在内存溢出方面情况是相
阅读全文
摘要:版权声明:源出处:尚硅谷JVM 博客来源于大佬整理 本地方法接口 在讲Java虚拟机运行时数据区中本地方法栈之前,我们先来说说运行时数据区之外的一个叫本地方法接口的东西简称JNI(Java Native Interface) 简单来讲,一个Native Method就是一个java调用非java代码
阅读全文
摘要:版权声明:源出处:尚硅谷JVM 博客来源于大佬整理 栈帧的内部结构 每个栈帧中存储着 1.局部变量表(Local Variables) 2.操作数栈(Operand Stack)(或表达式栈) 3.动态链接(Dynamic Linking)(或执行"运行时常量池"的方法引用) 深入理解Java多态特
阅读全文
摘要:版权声明:源出处:尚硅谷JVM 博客来源于大佬整理 虚拟机栈的背景 由于跨平台性的设计,java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。 根据栈设计的优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。 内存中的堆与栈 栈是运行
阅读全文
摘要:版权声明:源出处:尚硅谷JVM 博客来源于大佬整理 JVM中的程序计数寄存器(Program Counter Register)中,Register的命名源于CPU的寄存器,寄存器存储指令相关的现场信息。CPU只有把数据装载到寄存器才能够运行。JVM中的PC寄存器是对物理PC寄存器的一种抽象模拟。
阅读全文
摘要:版权声明:源出处:尚硅谷JVM 博客来源于大佬整理 Java内存空间 内存是非常重要的系统资源,是硬盘和cpu的中间仓库及桥梁,承载着操作系统和应用程序的实时运行。JVM内存布局规定了JAVA在运行过程中内存申请、分配、管理的策略,保证了JVM的高效稳定运行。不同的jvm对于内存的划分方式和管理机制
阅读全文
摘要:在 Go 编程语言中,数据类型用于声明函数和变量。 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存。 Go 语言按类别有以下几种数据类型: 序号类型和描述 1 布尔型布尔型的值只可以是常量 true 或者 false。一个简单的
阅读全文
摘要:版权声明:源出处:尚硅谷JVM 博客来源于大佬整理 JVM细节版架构图 本文针对Class Loader SubSystem这一块展开讲解类加载子系统的工作流程 类加载子系统作用 1.类加载子系统负责从文件系统或者网络中加载class文件,class文件在文件开头有特定的文件标识即16进制CA TE
阅读全文
摘要:版权声明:源出处:尚硅谷JVM 博客来源于大佬整理 首先来看计算机系统当中JVM所处的位置 JVM是运行在操作系统之上的,并没有和硬件有直接的交互 Java一次编译,到处运行 古今JVM SUN Classic Exact VM HotSpot VM :HotSpot指热点代码探测技术 BEA JR
阅读全文
摘要:Go 语言变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。 变量可以通过变量名访问。 Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。 声明变量的一般形式是使用 var 关键字: var identifier type 可以一次声明多个变量: var iden
阅读全文