自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 Tensorflow XLA编译优化(在线推理)

XLA编译优化可以有CPU版本也可以GPU版本,

2023-04-12 10:33:07 270

原创 C++ 类析构函数为什么最好加上virtual(子类引起内存泄漏的一种)

C++ 析构函数 内存泄漏 虚函数

2022-05-02 17:07:39 1129

原创 c++ const_cast使用

C++ const_cast

2022-04-30 17:02:46 1133

原创 C++ 子类对象变量和虚函数表内存结构

C++ 父子类中有重复变量(重名变量) C++虚函数表内存结构 C++继承内存结构 C++对象占用内存大小

2022-02-07 20:50:46 663

原创 Swig简单实验和理解

在看tensorflow的源码的时候,发现python调用c++框架是如何实现的引起了我的好奇,发现编译的时候使用的是Swig

2022-01-01 11:40:27 1177

原创 AttributeError: module ‘asyncio‘ has no attribute ‘run‘

问题描述 File "async_greeter_client.py", line 25, in run async with grpc.aio.insecure_channel('localhost:50051') as channel:AttributeError: module 'grpc' has no attribute 'aio'import loggingimport asyncioimport grpcimport helloworld_pb2import h...

2021-09-03 17:29:30 529

转载 linux环境内存分配原理

Linux的虚拟内存管理有几个关键概念:Linux 虚拟地址空间如何分布?malloc和free是如何分配和释放内存?如何查看堆内内存的碎片情况?既然堆内内存brk和sbrk不能直接释放,为什么不全部使用 mmap 来分配,munmap直接释放呢 ?Linux 的虚拟内存管理有几个关键概念:1、每个进程都有独立的虚拟地址空间,进程访问的虚拟地址并不是真正的物理地址;2、虚拟地址可通过每个进程上的页表(在每个进程的内核虚拟地址空间)与物理地址进行映射,获得真正物理地址;3、如果虚拟地址对应...

2021-03-23 12:05:02 153

转载 深入理解linux下进程和线程的空间分配,进程栈和线程栈的空间分配

转载https://blog.csdn.net/elfprincexu/article/details/78779158?spm=1001.2014.3001.5501关于进程栈和线程栈总结: (1)进程栈大小时执行时确定的,与编译链接无关 (2)进程栈大小是随机确认的,至少比线程栈要大,但不会超过2倍 (3)线程栈是固定大小的,可以使用ulimit -a 查看,使用ulimit -s 修改 (4)一般默认情况下,线程栈是在进程的堆中分配栈空间,每个线程拥...

2021-03-23 11:47:18 1813 2

原创 向量检索-faiss检索

一、语义相似检索背景1、为什么引入语义相似检索(向量检索)问题引出: 搜索引擎和搜索广告最难解决的问题是语义相似度 具体体现:召回和排序。Case1: 如"从北京到上海的机票"与"携程网"的相似性Case2"快递软件"与"菜鸟裹裹"的相似性2、语义相似度==向量检索? 语义相似度包含:深度学习模型 向量检索工程化实现3、补充关键字召回率(倒排拉链截断)关键字召回可能存在拉链后面的长期得不到召回 相关性强依赖...

2020-12-17 22:54:56 6168

转载 C++之const类成员变量,const成员函数

转自https://www.cnblogs.com/cthon/p/9178701.htmlC++之const类成员变量,const成员函数const修饰类的成员函数const修饰变量一般有两种方式:const T *a,或者 T const *a,这两者都是一样的,主要看const位于*的左边还是右边,这里不再赘述,主要来看一下当const修饰类的成员函数时,成员函数有什么特点。https://www.cnblogs.com/cthon/p/9166715.html类的成员函数后面..

2020-12-06 10:30:29 733

原创 关于广播变量和累加器

广播变量(groadcast varible)为只读变量,使用广播变量的好处:每个节点的executor有一个副本,不是每个task有一个副本,可以优化资源提高性能,比如机器学习的时候。累加器:累加器可以在各个executor之间共享,修改,其中有几种创建方法object AccumulatorTest { def main(args: Array[String]): Unit = { ...

2018-06-03 19:36:31 444

原创 Spark基础API总结

1. keyValue(单个RDD操作)(1)collectAsMap(把keyvalue的类型转换成Map,去掉重复的,后面覆盖前面的)scala> val pairRDD = sc.parallelize[(Int, Int)](Seq((1, 2), (3, 4), (3, 6)), 2)pairRDD: org.apache.spark.rdd.RDD[(Int, Int)] = P...

2018-06-02 22:18:35 219

原创 Spark基础API(cogroup)

cogroup函数是一个操作两个RDD的函数,且每个RDD是一个key-value类型;它可以把按照两个RDD的key进行分组,分组的结构是:元组第一个元素是一个key第二个元素是一个列表,其中第一个元素是RDD1的元素,第二个元素是RDD2的元素val pairRDD = sc.parallelize[(Int, Int)](Seq((1, 2), (3, 4), (3, 6), (5, 6))...

2018-05-30 05:18:14 1040

原创 Spark基础编程API查看分区(defaultParallelism/partitions.size)

SparkContext中有默认的RDD的分区,当系统运行过程中,可以通过下列方式获得scala> sc.defaultParallelismres10: Int = 8scala> otherRDD.partitions.sizeres11: Int = 8

2018-05-30 04:55:46 962

原创 spark基础编程API(collectAsMap/lookup)-(3)

1. collectAsMap:说明如下对于一个RDD来说,collectAsMap函数返回所有元素集合,不过该集合是去掉的重复的key的集合,如果元素重该复集合中保留的元素是位置最后的一组样例:val pairRDD = sc.parallelize[(Int, Int)](Seq((1, 2), (3, 4), (3, 6)), 2)scala> val a = pairRDD.coll...

2018-05-30 04:38:47 1260

原创 Key-Value类型的RDD的创建及基本转换(1)

1. 创建一个基本的key-value的RDDscala> val kvPairRDD =     |   sc.parallelize(Seq(("key1", "value1"), ("key2", "value2"), ("key3", "value3")))kvPairRDD: org.apache.spark.rdd.RDD[(String, String)]

2018-05-29 17:12:05 1654

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除