【Linux】ELF文件解析
前言最近选了Linux内核原理的选修课,虽然因为课时比较短涉及到的内容只能涵盖Linux知识的一小部分,但是老师的水平确实很高,讲的知识也很深入,这次布置的小作业是编写Linux平台下的C语言程序实现如下功能:
模仿实现Linux下readelf工具的部分功能,能够对ELF可执行文件进行简单分析。(至少支持readelf工具的-h、-S、-s三个命令选项功能)
关于原理部分自认为没有能力和大佬们讲得一样透彻清楚,所以参考文章链接贴在了文章的末尾,看了一定就会明白的。
1.ELF文件介绍在 Linux 系统中,一个 ELF 文件主要用来表示 3 种类型的文件:
可执行文件:被操作系统中的加载器从硬盘上读取,载入到内存中去执行;
目标文件:被链接器读取,用来产生一个可执行文件或者共享库文件;
共享库文件:在动态链接的时候,由 ld-linux.so 来读取;
2.readelf命令1234567891011121314151617181920212223-a :--all 显示全部信息,等价于 -h -l -S -s -r -d -V -A -I-h :--file-header 显 ...
【机器学习】推荐系统 Factorization Machines 因子分解机
前言因子分解机 (Factorization Machines) 是CTR预估的重要模型之一。要讲述因子分解机FM,就避不开逻辑回归LR(logistic Rgeression)和矩阵分解MF(Matrix Factorization)。
转自推荐系统玩家 之 因子分解机FM(Factorization Machines) - 知乎 (zhihu.com)
1.因子分解机的演变传统的推荐模型
上图是传统的推荐系统模型的分类,逻辑回归LR模型在传统的推荐模型中占据着非常重要的位置。而因子分解机的出现,也来源于逻辑回归和矩阵分解的演化。
首先我们知道,逻辑回归的是对所有特征的一个线性加权组合, 然后再加入Sigmoid逻辑函数:
\large \hat{y}(x)=w_{0}+w_{1} x_{1}+\ldots+w_{n} x_{n}=w_{0}+\sum_{i=1}^{n} w_{i} x_{i} \tag{1}对比与矩阵分解,虽然逻辑回归模型已经不单单考虑了用户的行为特征,也可以加入年龄,性别,物品的属性,时间,地点等等特征。但是逻辑回归表达能力仍然差的原因是仅仅用了每个单一的特征 ...
【C++】C++引用
一. 基本用法1. 例子1使用引用改变值
1234567891011#include <iostream>#define LOG(x) std::cout<<x<<std::endlint main() { int a = 5; int& ref = a;//相当于创建了一个别名 ref = 2; LOG(a); return 0;}
输出2
需要注意的是,并不存在真正的引用类型的“变量”ref,ref只是a的一个引用,在编译过后也不会存在ref和a两个变量,ref只存在于源代码中。
2. 例子2给函数传递引用
1234567891011121314#include <iostream>#define LOG(x) std::cout<<x<<std::endlvoid Increment(int& value) { value++;}int main() { int a = 5; Increment( ...
【C++】CMake使用示例与整理总结
一. CMake使用示例与整理总结参考链接cmake使用示例与整理总结_carl的修行-CSDN博客
Linux CMake工程目录结构 | 蘑菇的博客 (quarkhackers.space)
1. cmake中一些预定义变量
PROJECT_SOURCE_DIR 工程的根目录
PROJECT_BINARY_DIR 运行cmake命令的目录,通常是${PROJECT_SOURCE_DIR}/build
CMAKE_INCLUDE_PATH 环境变量,非cmake变量
CMAKE_LIBRARY_PATH 环境变量
CMAKE_CURRENT_SOURCE_DIR 当前处理的CMakeLists.txt所在的路径
CMAKE_CURRENT_BINARY_DIR target编译目录
使用ADD_SURDIRECTORY(src bin)可以更改此变量的值SET(EXECUTABLE_OUTPUT_PATH <新路径>)并不会对此变量有影响,只是改变了最终目标文件的存储路径
CMAKE_CURRENT_LIST_FILE 输出调用这个变量的CMakeL ...
【机器学习】Bert微调
参考:
什么是BERT? - 知乎 (zhihu.com)
词向量之BERT - 知乎 (zhihu.com)
BERT 详解 - 知乎 (zhihu.com)
详解Transformer (Attention Is All You Need) - 知乎 (zhihu.com)
从Transformer到Bert - 知乎 (zhihu.com)
14.10. 预训练BERT — 动手学深度学习 2.0.0-alpha2 documentation (d2l.ai)
(强推)李宏毅2021春机器学习课程_哔哩哔哩_bilibili
70 BERT微调【动手学深度学习v2】_哔哩哔哩_bilibili
Bert细节整理 - 简书 (jianshu.com)
代码:
http://www.d2l.ai/chapter_natural-language-processing-applications/natural-language-inference-bert.html
一. 回顾TransformerTransformer就是结合了自注意力机制的encoder-de ...
【论文】英文摘抄
一. 常用句式1. Abstract2. IntroductionIn recent years, DG has received increasing attention from the research community due to its importance to practical applications.
To overcome the domain shift problem, as well as the absence of target data, the problem of domain generalization (DG) is introduced .
In this survey paper, we aim to provide a timely and comprehensive literature review.
In the context of DG,(就DG而言)
There has been a lively interest since pansharpening in the last few decades.
They ...
【多媒体】ffmpeg将webm格式转换成mp4
起因手头有一部4K风景视频,辛辛苦苦从油管上下载下来,想要用wallpaper engine做成壁纸,却发现格式是webm,vp9编码,wallpaper engine并不支持,所以想要将格式进行转换。怎么说呢,感觉还是ffmpeg更方便,就是参数很难调。所以在此记录一下。
转换成HEVC编码(H.265)因为是使用的硬件编码,硬件编码教程
1ffmpeg -c:v vp9_cuvid -i video.webm -c:v hevc_nvenc -cq 0 video.mp4
参数解释:
-c:v :指定编解码器
-i : 指定输入参数
vp9_cuvid : 使用nvdia硬件vp9解码器
hevc_enc: 使用nvdia硬件h.265编码器
-cq : 也就是软压的-crf参数很类似,控制码率的参数,0最低对应画质好,数字越大越差
转换之后发现wallpaper engine不支持hevc,麻了,而且码率输入进去的有20000K左右,出来只有2000K了,压得实在太狠了。
转换成AVC编码(h.264)考虑到想要无损编码,至少码率不要损失得太严重,所以找到了新的解决办法
...
【机器学习】自注意力
前言我们前面说过,注意力机制包含几个重要的参数,query,key,value,针对不同的问题,往往需要选择合适的变量来作为query,key,和value,当遇到query,key,value都是同一个东西,同一种参数的时候,这样的机制叫做自注意力机制。
1. 自注意力假设我们有一个输入序列
\mathbf{x}_{1}, \ldots, \mathbf{x}_{n}, \forall \mathbf{x}_{i} \in \mathbb{R}^{d}xi是第i个时间步的输入,d是输入值的特征维度,自注意力池化层将xi同时作为query,key,value,对序列抽取特征得到
\mathbf{y}_{1}, \ldots, \mathbf{y}_{n}其中
\mathbf{y}_{i}=f\left(\mathbf{x}_{i},\left(\mathbf{x}_{1}, \mathbf{x}_{1}\right), \ldots,\left(\mathbf{x}_{n}, \mathbf{x}_{n}\right)\right) \in \mathbb{R}^{d}xi作为qu ...
Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
【数据结构】基于PyQt5的Huffman编解码系统
最近布置的作业要整个编码压缩译码解压缩系统,唉真是难啊,临时花了几天看PyQt5,踩了无数坑,终于算是弄完了。
弄了动态背景,其实就是GIF图播放,计算任务是放在子线程里面的,任务进度在主线程UI界面更新。
参考博客:
Huffman编码:
基于哈夫曼编码的压缩算法的Python实现_字节莫的CSDN博客-CSDN博客_python 哈夫曼压缩
Python中使用哈夫曼算法实现文件的压缩与解压缩_cc815107613的博客-CSDN博客_python基于哈夫曼编码的文件压缩及解压缩
Pyqt5多线程:
pyqt5 的多线程(QThread)遇到的坑(一)_HHKJ 的博客-CSDN博客
pyqt5 的多线程(QThread)遇到的坑(二)_HHKJ 的博客-CSDN博客_pyqt多线程闪退
Pyqt5刷新页面:
pyqt5学习笔记——刷新页面_OneKey-CSDN博客_pyqt5 刷新界面
Pyqt5打包:
[PyQt] 使用.qrc 生成资源文件供程序中使用_的专栏-CSDN博客_pyqt 编译qrc文件
PyQt5,资源文件 .qrc 的使用_龚建波-CSDN博客_pyqt5 ...