自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

白马负金羁

数据挖掘 | 统计分析 | 图像处理 | 程序设计

  • 博客(477)
  • 资源 (1)
  • 收藏
  • 关注

原创 Ghidra逆向工具之旅与二进制代码分析【3】

逆向工程工具Ghidra由NSA的研究理事会为其网络安全任务开发的软件逆向工程(SRE)框架,它有助于分析恶意代码和病毒等恶意软件,并可以让网络安全专业人员更好地了解其网络和系统中的潜在漏洞

2022-12-16 11:13:17 430

原创 Ghidra逆向工具之旅与二进制代码分析【2】

Ghidra是一种开源的逆向工具,它是由NSA的研究理事会为其网络安全任务开发的软件逆向工程(SRE)框架,它有助于分析恶意代码和病毒等恶意软件,并可以让网络安全专业人员更好地了解其网络和系统中的潜在漏洞。把Ghidra和Python脚本结合起来,会大大提高执行效率,从而发挥更加强大的功用

2022-10-30 11:30:12 1216

原创 Ghidra逆向工具之旅与二进制代码分析【1】

本系列文章系统地介绍众多逆向工具中的一种 Ghidra,它是由NSA的研究理事会为其网络安全任务开发的软件逆向工程(SRE)框架,它有助于分析恶意代码和病毒等恶意软件,并可以让网络安全专业人员更好地了解其网络和系统中的潜在漏洞。Ghidra跟IDA Pro用起来很像,但Ghidra是免费的,而且是开源的

2022-10-29 13:03:25 780

原创 解决编译中遇到的问题:Please port gnulib freadahead.c to your platform

解决在编译若干个老版本的GNU gzip软件中遇到的各种各样的问题。例如:Please port gnulib freadahead.c to your platform,以及error: too many arguments to function ‘futimens’ 188 | return futimens (-1, file, timespec); 等等。遂记录于此。

2023-09-23 03:31:13 72

原创 在Linux、Ubuntu中跨平台编译ARM(AARCH64)平台的binutils

​Binutils 是GNU提供的一组二进制工具的集合。通常,在已经安装了Linux操作系统的个人电脑上,系统就已经自带了这个工具集。但在进行嵌入式开发的时候,可能会用到支持ARM64平台的Binutils,这时就需要用到交叉编译

2023-07-24 11:08:53 717

原创 基于Transformer实现文本分类(Keras/TensorFlow)

2017年,Google 在论文 Attention is All you need 中提出了 Transformer 模型,其使用 Self-Attention 结构取代了在 NLP 任务中常用的 RNN 网络结构。而且实验也证明Transformer 在效果上已经完败传统的 RNN 网络

2023-02-16 07:56:12 1608 1

原创 Keras实例教程(7)之构建模型的第三种方式

曾几何时,在TensorFlow中搭建深度学习模型对于很多人来说其实仍然是比较困难的。相比之下,Keras作为独立于TensorFlow的一种深度学习框架则要简单很多。在TensorFlow与PyTorch的竞争中逐渐式微的情况下,TensorFlow团队终于宣布Keras将成为在tensorflow2.0中构建和训练模型的核心高级API

2023-02-15 11:50:22 357

转载 Python面向对象中的super详解

Python中关键字super主要用来调用父类的方法,当我们调用 super() 的时候,实际上是实例化了一个 super 类,而非关键字或者函数等其它数据结构。在大多数情况下,super 包含了两个非常重要的信息: 一个 MRO (方法解析顺序)以及 MRO 中的一个类

2023-02-15 08:46:34 317

原创 successful NUMA node read from SysFS had negative value (-1)告警的处理方法

在使用 TensorFlow或者Keras时,可能会遇到下面这个告警“successful NUMA node read from SysFS had negative value (-1)”,本文将介绍该告警的处理方法

2023-02-11 07:34:26 1031

原创 LSTM已死,Transformer当立(LSTM is dead. Long Live Transformers! ):下

2017 年,Google 在论文 Attention is All you need 中提出了 Transformer 模型,其使用 Self-Attention 结构取代了在 NLP 任务中常用的 RNN 网络结构。而且实验也证明Transformer 在效果上已经完败传统的 RNN 网络

2023-02-11 04:54:25 3050

原创 LSTM已死,Transformer当立(LSTM is dead. Long Live Transformers! ):上

2017 年,Google 在论文 Attention is All you need 中提出了 Transformer 模型,其使用 Self-Attention 结构取代了在 NLP 任务中常用的 RNN 网络结构。而且,实验也证明Transformer在效果上可以完败RNN,本文主要介绍 Transformer 模型的具体实现,作为上篇,我们先把Multi-head Self-Attention解释清楚

2023-02-10 10:43:27 1007

原创 libnvinfer.so, libnvinfer_plugin.so : cannot open shared object file 错误解决

在使用GPU加速你的深度学习程序时,你是否遇到过如下警告:Could not load dynamic library 'libnvinfer.so.7'; dlerror: libnvinfer.so.7: cannot open shared object file: No such file or directory; Could not load dynamic library 'libnvinfer_plugin.so.7'; dlerror: libnvinfer_plugin.so.7

2023-02-08 09:02:09 1843

原创 脚本语言Bash简明教程【3】(完结篇)

Bash, Bourne-Again SHell,是Bourne shell的后继兼容版本与开放源代码版本, Unix shell的一种。在1987年由布莱恩·福克斯为了GNU计划而编写。1989年发布第一个正式版本,原先是计划用在GNU操作系统上,但能运行于大多数类Unix系统的操作系统之上。Bash是一个命令处理器

2022-12-17 08:42:57 306

原创 Linux中使用交叉编译、二进制分析工具链

交叉编译,就是要生成在其它平台上运行的目标代码。例如个人电脑上的CPU都基于X86架构。但很多手机或其它嵌入式设备的处理器则可能是基于ARM架构的。若要在个人电脑上开发嵌入式应用,就要进行交叉编译。本文主要演示在Linux环境下使用交叉编译及二进制分析工具链的基本方法

2022-12-16 06:51:41 429

原创 脚本语言Bash简明教程【2】

Bash, Bourne-Again SHell,是Bourne shell的后继兼容版本与开放源代码版本, Unix shell的一种。在1987年由布莱恩·福克斯为了GNU计划而编写。1989年发布第一个正式版本,原先是计划用在GNU操作系统上,但能运行于大多数类Unix系统的操作系统之上。Bash是一个命令处理器

2022-12-14 09:25:06 198

原创 计算机系统安全学术会议评价与排行

综合了六大计算机安全学术会议排名,汇集了2022新版CCF推荐会议排名,清华大学计算机学科群推荐学术会议榜单,以及Google Scholar学术指标排名等,做系统安全研究的人应该尽快收藏

2022-12-14 06:54:28 1657

原创 脚本语言Bash简明教程【1】

Bash, 即Bourne-Again SHell,是Bourne shell的后继兼容版本与开放源代码版本, Unix shell的一种。在1987年由布莱恩·福克斯为了GNU计划而编写。1989年发布第一个正式版本,原先是计划用在GNU操作系统上,但能运行于大多数类Unix系统的操作系统之上。Bash是一个命令处理器,通常运行于文本窗口中,并能执行用户直接输入的命令。Bash还能从文件中读取命令,这样的文件称为脚本。它支持通配符匹配、管道、命令替换、变量,以及条件判断和循环遍历的结构控制语句

2022-12-09 06:12:42 220

原创 GNU调试、反编译、二进制分析工具链

GCC是GNU中用于编译的工具,其全称是 GNU Compiler Collection。将C/C++源代码用GCC/G++编译成可执行的二进制文件后,后续还有很多有用的工具可以支持调试、反编译、及二进制代码分析的工作,例如知名的gdb。本文主要介绍GNU工具链中跟调试、反编译、二进制分析相关的应用。例如addr2line和objdump。熟悉和了解这些工具对于逆向工程、系统安全、软件分析等非常有帮助

2022-11-19 13:02:23 498

原创 Linux信号详解:signal与sigaction函数【2】

前面已经讨论了Linux操作系统中“信号”、“中断”、“僵尸进程”’等重要概念。结合C语言中的setjmp、longjump、sigsetjum和siglongjmp,读者也知道了如何实现异常处理。通过signal和sigaction,我也知道了如何修改或者屏蔽默认的信号处理函数。这是本系列文章的最后一篇。本文将通过具体代码实例来深化上述重要概念和方法的理解

2022-10-11 08:21:37 450

原创 Linux信号详解:signal与sigaction函数【1】

在此前的系列文章中,我们已经介绍了signal函数的基本用法,本文将通过若干例子帮助读者增进对于它的了解,特别地,本文还要重点解释Sigaction的使用方法

2022-10-07 11:21:39 487

原创 据传是科罗拉多最美的景致:万山中的秘境仙踪

科罗拉多州(Colorado)素有“户外运动天堂“之称,该州最著名的旅游胜地洛基山国家公园更常年位居全美最热门国家公园榜单前列。但如果问“哪里是科罗拉多最美的地方(the most photographed and iconic spot)?”,答案可能是一个很多人都没太听过的名字——Maroon Bells。大部分介绍科罗拉多旅游的出版物(杂志文章或者书籍)都使用该地所拍摄的照片作为封面

2022-09-26 11:08:20 420 1

原创 Excel表格快速复制公式到最后一行,无需拖拽!

工欲善其事,必先利其器!掌握一些Excel表格的操作技巧,很多时候会极大地减轻工作量。有时我们希望在Excel表格中快速填充/复制公式,但如何在不使用鼠标拖拽的情况下直接复制到最后一行呢?本文将手把手助你提升工作效率

2022-09-26 10:27:07 13753 1

原创 Ubuntu22.04深度学习GPU环境配置:Nvidia CUDA 11.7、cuDNN 8.5 详细解读(20220910)

假设你已经成功安装了最新版本的Ubuntu22.04 LTS 操作系统,并已经配备了支持深度学习的英伟达GPU,本文将手把手详细解读如何配置环境,包括安装必要的软件:例如驱动515,CUDA 11.7,以及cuDNN 8.5等

2022-09-12 06:47:47 3405 2

原创 自然之州阿肯色及温泉国家公园

阿肯色州(Arkansas)是美国南部的一个州。这是一篇让你彻底玩透阿肯色的深度游记,希望我们一同饱览这神秘而壮丽的景色

2022-07-29 10:39:57 784 2

原创 美国的国家公园概览

美国国家公园被认为是美国最宝贵的历史遗产中的一个,它作为美国人的公共财产得到管理,并为让后代享用而得到保护维修。美国利用国家公园保护国家的自然、文化和历史遗产,并让全世界通过这个视窗了解美国的壮丽风貌、自然和历史财富以及国家的荣辱忧欢...

2022-06-07 10:26:25 506 1

原创 在Docker中使用TensorFlow(GPU版+Ubuntu 20.04)

在此前的文章中,我们介绍了如何在Ubuntu 20.04中安装Docker。本文将介绍如何在其中使用TensorFlow(GPU)版。安装完成Docker并检查安装正确后,如果需要Docker容器中有GPU支持,需要再安装NVIDIA-Docker

2022-03-29 10:21:47 3265

原创 在RNN模型中引入注意力机制(Attention)

将Seq2seq模型用于机器翻译时,一个明细的问题在于随着输入句子越来越长,更早输入的单词就很大可能会被忘掉。于是,随着输入句子中单词数变多,翻译质量就会很快劣化。改善此问题的一个方法就是引入注意力机制(Attention),本文由此展开解释Attention的基本原理...............

2022-03-29 08:02:47 2588

原创 在Ubuntu 20.04上安装Python虚拟环境

使用 Python 开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;抑或是在开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。为此,需对不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的整洁

2022-03-28 12:15:25 3866

原创 SIFT特征描述与检测的Matlab实现

尺度不变特征变换(SIFT)特征对旋转、尺度缩放、亮度变化等保持不变性,是非常稳定的局部特征。SIFT的主要思路是:首先构造图像的尺度空间表示,然后在尺度空间中搜索图像的极值点,由极值点再建立特征描述向量,最后用特征描述向量进行相似度匹配。本文将通过MATLAB代码来演示SIFT特征描述算法的原理

2021-12-20 05:54:01 1216

原创 SURF特征描述与检测的Matlab实现

SIFT特征描述算子在生成特征矢量时使用的是高斯图像,而SURF特征描述算子在生成特征矢量时用到的则是积分图。这样做的目的是为了充分利用特征点检测时形成的中间结果,也就是积分图,从而避免在特征矢量生成时对图像进行重复计算。本文将通过MATLAB代码来演示SURF特征描述算法的原理

2021-12-20 04:26:25 2456

原创 操作系统中的信号与异常:sigsetjmp和siglongjmp【2】

在信号处理程序中经常调用longjmp函数以返回到程序的主流程中,而不是从该处理程序返回。如果用longjmp跳出信号处理程序,那么,对此进程的信号屏蔽字会发生什么呢?(setjmp和longjmp保存和恢复信号屏蔽字,还是不保存和恢复,不同的实现各有不同)这也就是调用longjmp的一个问题

2021-12-07 14:17:50 546

原创 操作系统中的信号与异常:sigsetjmp和siglongjmp【1】

在计算机科学中,信号是Unix或类Unix以及其他POSIX兼容的操作系统中进程间通讯的一种有限制的方式。它是一种(事件发生时对进程的)异步通知机制,用来提醒进程一个事件已经发生(有时也称为软件中断,或者异常)

2021-12-07 12:03:38 748

原创 深入详解Linux进程间通信之共享内存(Shared Memory)+信号量同步【2】

在Linux下的多个进程间的通信机制叫做IPC(Inter-Process Communication),它是多个进程之间相互沟通的一种方法。专栏前面的文章中演示过使用shared memory进行IPC的方法。本文将更进一步探讨Linux进程间通过共享内容进行通信的方法,包括如何使用Anonymous shared memory,以及如何使用信号量来进行同步等。Shared memory是最快的一种IPC机制

2021-11-02 03:02:46 662

原创 深入详解Linux进程间通信之共享内存(Shared Memory)【1】

在Linux下的多个进程间的通信机制叫做IPC(Inter-Process Communication),它是多个进程之间相互沟通的一种方法。专栏前面的文章中演示过使用pipe、shared memory、unix domain socket进行IPC的方法。彼时,关于共享内存的例子比较简单,仅仅是父子进程间通过system V IPC通信的过程。本文将更进一步探讨Linux进程间通过共享内容进行通信的方法,并演示基于POSIX的共享内存实例

2021-11-01 07:33:10 622

原创 软件漏洞检测(Bug Finding):Clang Static Analyzer(进阶与实战)

The Clang Static Analyzeris a source code analysis tool that finds bugs in C, C++, and Objective-C programs. CSA是Clang项目的一部分,而且完全开源。注意这里的静态分析,表示并不需要运行程序,CSA is built on Clang based on symbolic execution technique

2021-09-20 14:03:32 735

原创 在Ubuntu中编译LLVM、clang(以便支持z3的使用)

LLVM是一个自由软件项目,它是一种编译器基础设施,以C++写成。其发端源于2000年伊利诺伊大学厄巴纳-香槟分校(UIUC)的Vikram Adve教授与其第一个博士生Chris Lattner的研究。LLVM的命名最早源自于底层虚拟机(Low Level Virtual Machine)的首字母缩写,但现在这个项目的范围早已大大超越其最初的意思。当前,LLVM已经发展成为被用于开发从编译器前端到后端的一套模块及可重用的编译器及工具链技术的集合

2021-09-20 07:11:37 663

原创 如何在Ubuntu中升级或者安装cmake

CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。如何在Ubuntu中升级或者安装cmake呢?Using the Snap package manager is the quickest and easiest way to install the latest version of CMake on Ubuntu

2021-09-20 05:03:20 673

原创 在Ubuntu上编译z3:报错与处理

Z3 is a high performance SMT solver developed by Microsoft Research. 通过提供API的方式,它支持多种计算机语言。LLVM中的Clang Static Analyzer(CSA)是在Clang编译器基础上构建的软件源代码分析工具,它可以被用来进行bug finding。CSA中默认使用的constraint solver具有一定的局限性,但可以选择Z3作为CSA中的SMT solver,这样可以扩展CSA的代码分析能力

2021-09-20 04:31:20 468

原创 在Ubuntu中安装CodeChecker、Node、NVM:过程与排雷

CodeChecker is a static analysis infrastructure built on the LLVM/Clang Static Analyzer toolchain。本文介绍在Ubuntu上安装它的基本流程,尤其解决过程中可能会遇到的一些问题和麻烦。本文还介绍了如何安装Node.js、npm、NVM等问题。包括一些错误提示的处理方式,例如npm :Depends: node-gyp (>= 0.10.9) but it is not going to be install

2021-09-16 07:15:41 484

原创 Linux多线程编程与同步实例(基于条件变量)

线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务

2021-09-08 06:08:50 233

在Word中写出像LaTeX一样的公式

Word中编辑数学公式的技巧(毕业论文排版必备),在Word中写出像LaTeX一样的的公式。

2015-12-21

空空如也

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

TA关注的人

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