- 博客(8)
- 收藏
- 关注
原创 注意力机制简单实现
上述代码中,SelfAttention 是一个自注意力模块,包含了查询、键、值的权重矩阵和多头注意力权重矩阵。forward 函数中,首先对输入序列 x 进行查询、键、值的计算,然后将每个头的张量拆分成多个头,并交换维度。接下来,计算注意力权重和注意力输出,最后计算多头注意力输出,并返回输出张量和注意力权重张量。在上述代码中,计算注意力权重的语句是。
2023-04-03 09:57:05
199
原创 进程(重新修行)
fork系统调用:fork系统调用用于创建一个新的进程,新的进程与原进程具有相同的代码和数据,但是在执行时拥有独立的执行环境。具体实现过程为:操作系统复制原进程的PCB,创建新的进程,并为其分配独立的进程ID,同时复制原进程的内存映像、打开的文件等资源,并将复制后的PCB和资源指向新进程。当其他进程需要创建新的进程时,它们可以通过调用操作系统提供的进程创建函数,例如fork(),从而创建新的子进程,新的子进程的父进程就是调用fork()函数的进程。因此,程序是进程的基础,进程是程序的实例化。
2023-03-29 16:07:45
100
原创 C++知识学习
在程序中添加适当的断言语句,可以帮助我们检测程序中的错误,并在出错时快速终止程序。(1)使用调试工具:使用常见的调试工具,如 gdb、valgrind、Intel VTune 等,可以帮助我们定位程序中的问题。(3)合理使用线程池:线程池是一种重用线程的机制,可以避免频繁地创建和销毁线程,提高程序的性能。需要注意的是,在 C++ 中,异常处理机制会带来一些性能开销,因此应该尽量避免不必要的异常,只在必要时使用。类可以创建多个线程,同时也提供了一些同步和互斥机制,以确保多个线程之间的协同工作。
2023-03-28 19:19:34
81
原创 C++一直以来困扰我的点
使用引用类型可以避免进行不必要的拷贝,提高代码效率。如果没有使用引用类型,而是使用值类型,那么函数会在调用时进行一次对象的拷贝,如果传递的对象很大,这会浪费大量的时间和内存。在 C++ 中,使用 const & 作为函数参数类型时,const 起到了保护被引用的变量不被修改的作用,而 & 则表示函数参数是一个引用类型。下面分别解释一下它们的作用。这样可以避免无意间修改变量的值,提高程序的安全性。因此,使用 const & 作为函数参数类型可以避免不必要的对象拷贝,并保证参数只读,同时提高代码效率和安全性。
2023-03-28 11:53:26
91
原创 面经帖(二)
需要注意的是,epoll机制对于大量的文件描述符和事件类型有很好的扩展性,它通过红黑树和双向链表等数据结构来管理文件描述符和事件,并且使用了惊群问题的解决方法,从而避免了select和poll机制在高并发情况下的性能问题。虚函数表指针(vptr)的大小:如果一个类中包含了虚函数,则每个对象都需要包含一个指向虚函数表的指针,这个指针的大小通常是一个机器字长的大小(32 位系统为 4 字节,64 位系统为 8 字节)。因此,类中的成员变量可能会按照一定的对齐方式进行内存分配,从而影响类的大小。
2023-03-26 10:17:20
121
原创 面经准备(一)
多进程(多线程)在同时阻塞等待同一个事件的时候(休眠状态),如果等待的这个事件发生,那么他就会唤醒等待的所有进程(或者线程),但是最终却只能有一个进程(线程)获得这个时间的“控制权”,对该事件进行处理,而其他进程(线程)获取“控制权”失败,只能重新进入休眠状态,这种现象和性能浪费就叫做惊群效应。在访问内存时,操作系统先根据虚拟地址的高位找到页目录表,然后再根据页目录表中的一个页表项找到对应的页表,最终找到对应的页表项,计算出物理地址。这个过程是同步的,即在read()方法返回之前,线程将一直阻塞。
2023-03-25 13:23:25
59
原创 使用C++进行MongoDB操作
它接受一个集合名称和一个聚合管道(Aggregation Pipeline)作为参数,根据聚合管道的定义,从指定的集合中抽取数据,并生成一个虚拟的文档集合。该函数在插入成功后返回一个InsertOneResult对象,可以通过该对象获取插入的文档的_id值和操作结果等信息。函数是旧版本MongoDB C++驱动程序中的函数,用于将一个或多个文档对象插入到MongoDB数据库中。它接受一个文档对象或文档对象数组作为参数,并将这些文档对象插入到指定的集合中。函数是用于插入单个文档对象的函数,
2023-03-24 18:16:59
1336
原创 力扣磨题记录
感觉不系统,昨天在知识星球上购买了代码随想录的会员,今天决定按照上面的刷题指南走一波,然后再做剑指offer和热题100,如果能做完,再之后就再制定其他计划。所以它不执行第二次循环,代码一看,“哦?但我愿意死磕,就像昨晚我梦见我自己变成骑兵连的一员,其实在梦里我真的害怕了,可以逃跑也可以投降,但我选择跟敌人死磕!int取值范围:int占的是4个字节,一个字节8位,也就是32位,取值范围是-2^31 ---- 2^31-1。第一种办法是我自己写的,用迭代器操作,速度击败100%,内存击败95%。
2023-03-10 15:02:42
134
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人