SVTAV1函数分析-svt_av1_cost_coeffs_txb
一 函数作用
函数svt_av1_cost_coefss_txb是一个与AV1视频编码相关的函数,主要用于计算变换块(Transform Block)中系数的成本(Cost)。在视频编码中,特被是在AV1编码中,计算系数的成本对于模式决策(Mode Decision)和熵编码(Entropy Coding)
等步骤非常重要。这个函数可能涉及到量化系数,变换类型,上下文自适应二进制算术编码(Context-Adaptive Binary Arithmetic Coding CABAC)等内容。
函数参数解释
1 struct ModeDecisionContext *ctx;
这是一个指向模式决策上下文的指针,模式决策上下文包含了当前编码过程中的一些状态信息和配置参数,这些信息对于决定最佳的编码模式至关重要。它可能包括诸如块大小,帧类型,参考帧等信息。
2 unint8_t allow_update_cdf
这是一个标志,用于指示是否允许更新累积分布函数CDF,CDF在熵编码中用于表示符号的概率分布。如果允许更新,则编码器可以根据实际数据调整概率模型,这可能有助于提高编码效率。
3 FRAME_CONTEXT *en_ctx
这是一个指向帧上下文的指针,帧上下文包含了当前帧的编码上下文信息,可能包括诸如概率模型,统计信息等。这些信息对于熵编码过程中的符号概率估计和编码决策非常重要。
4 struct ModeDecisionCandidateBuffer *cand_bf;
这是一个指向模式决策候选缓冲区的指针。候选缓冲区可能存储了多个编码模式的候选信息,这些信息用于模式决策过程,可能包括诸如不同变换类型,预测模式等候选配置。
5 const TranLow *const qcoeff
这是一个指向量化系数的指针。量化系数是经过量化处理后的变换系数,它们是视频编码中用于表示图像块信息的重要数据,这些系数将用于计算成本。
6 uint16_t eob
这是End of block的缩写,表示块中最后一个非零系数的位置,在视频编码中,特别是在变换和量化之后, 块中的许多系数可能变为零,EOB值可以额帮助快速定位到最后一个非零系数,从而提高编码效率。
7 PlaneType plane_type
这个参数指定了当前处理的平面类型,在视频编码中,图像通常被氛围亮度平面和色度平面,这个参数可能用于区分不同平面类型,并根据平面类型应用不同的编码策略。
8 TxSize transform_size
这个参数指定了变换块的大小,在AV1只能够,支持多种变换块大小,如4x4,8x8,16x16,32x32 等。变换块大小的选择会影响编码效率和计算复杂度。
9 TxType transform_type
这个参数指定了变换类型,在AV1中,支持多种变换类型。如DCT,ADST等,不同的变换类型适用于不同的图像内容和编码需求。
10 int16_t txb_skip_ctx
这个参数可能与变换块跳过(Transform Block Skip)的上下文有关,某些情况下,如果块中的系数非常稀疏或者满足某些条件,可以跳过变换和量化过程,以计生计算资源和编码时间。
11 int16_t dc_sign_ctx
这个参数可能与直流分量DC符号的上下文有关,直流分量是变换系数中的低频部分,对编码效率有影响
12 Bool reduced_transform_set_flag
这是一个布尔标志,用于指示是否使用简化的变换集,在某些编码配置下,为了减少计算复杂度,可能会限制可用的变换类型。
二 函数注释
//定义函数,计算AV1,编码中变换块系数的成本
uint64_t svt_av1_cost_coeffs_txb(struct ModeDecisionContext *ctx,
uint8_t allow_update_cdf, FRAME_CONTEXT *ec_ctx,
struct ModeDecisionCandidateBuffer *cand_bf,
const TranLow *const qcoeff,
uint16_t eob,
PlaneType plane_type,
TxSize transform_size,
TxType transform_type,
int16_t txb_skip_ctx,
int16_t dc_sign_ctx,
Bool reduced_transform_set_flag)
{
//计算变换块大小的上下文索引
const TxSize txs_ctx = (TxSize)((txsize_sqr_map[transform_size] + txsize_sqr_up_map[transform_size] + 1) >> 1);
//获取变换类
const TxClass tx_class = tx_type_to_class[transform_type];
//初始化成本变量
int32_t cost;
//获取变换块的对数宽度
const int32_t bwl = get_txb_bwl_tab[transform_size];
//获取变换块的宽度
const int32_t width = get_txb_wide_tab[transform_size];
//获取变换块的高度
const int32_t height = get_txb_high_tab[transform_size];
//获取扫描顺序
const ScanOrder *const scan_order = &av1_scan_orders[transform_size][transform_type]; //获取扫描顺序
//获取扫描数组
const int16_t *const scan = scan_order->scan;
//定义存储系统级别的缓冲区
uint8_t levels_buf[TX_PAD_2D];
//设置系数级别指针
uint8_t *const levels = set_levels(levels_buf, width);
//定义存储系数上下文的数组
DECLEAR_ALGIED(16, int8_t, coeff_contexts[MAX_TX_SQUARE]);
//断言txs_ctx小于变换块大小
assert(txs_ctx < TX_SIZES);
//获取系数代价
const LvMapCoeffCost *const coeff_costs = &ctx->md_rate_est_ctx->eob_frac_bits[eob_multi_size][plane_type];
//计算eob的多尺寸大小
const int32_t eob_multi_size = txsize_log2_minus4[transform_size];
//获取eob成本
const LvMapEobCost *const eob_bits = &ctx->mb_rate_est_ctx->eob_frac_bits[eob_multi_size][plane_type];
//eob必须大于0
assert(eob > 0);//如果eob = 0就不用往下走了
//初始化成本为txb_skip_cost
cost = coeff_costs->txb_skip_cost[txb_skip_ctx][0];
//如果允许更新CDF
if (allow_update_cdf)
update_cdf(ec_ctx->txb_skip_cdf[txs_ctx][txb_skip_ctx], eob == 0, 2);
//如果eob 大于1
if (eob > 1)
//初始化levels
svt_av1_txb_init_levels(qcoeff, width, height, levels);
//判断是否为INTR模式
const Bool is_inter = is_inter_mode(cand_bf->cand->pred_mode);
//变换类型估计
cost += plane_type > PLANE_TYPE_Y ? 0;
av1_transform_type_rate_estimation(ctx, allow_update_cdf, ec_ctx, cand_bf,
is_inter, transform_size, tranform_type, reduced_transform_set_flag);
int32_t eob_cost = get_sob_cost(eob, eob_bits, coeff_costs, tx_class);
cost += eob_cost;
//如果允许更新CDF
if (allow_update_cdf)
//更新eob上下文
svt_av1_update_eob_context(eob, tranform_size, tx_class, plane_type, ex_ctx, allow_update_cdf);
//变换非零系数位估计
svt_av1_get_nz_map_contexts(levels, scan, eob, transform_size, tx_class, coeff_contexts);
//version is avaiable in AOM
assert(eob < width * height);
if (allow_update_cdf) {
//从eob - 1到0循环
for (int c = eob - 1; c>=0; --c) {
//获取位置
const int pos = scan[c];
//获取系数上下文
const int coeff_ctx = coeff_contexts[pos];
//获取系数值
const TranLow v = qcoeff[pos];
//获取系数绝对值
const TranLow level = abs(v);
//如果最后一个系数
if (c == eob - 1) {
//断言系数上下文小于4
assert(coeff_ctx < 4);
//更新coeff_base_eob_cdf
update_cdf(ec_ctx->coeff_base_eob_cdf[txs_ctx][plane_type][coeff_ctx], AOMMIN(level, 3) - 1, 3);
} else {
//更新coeff_base_cdf
uodate_cdf(ec_ctx->coeff_base_cdf[txs_ctx][plane_type][coeff_ctx], AOMIN(level, 3), 4);
}
//如果最后一个系数
if (c == eob - 1) {
assert(coeff_ctx < 4);
#if CONFIG_ENTROPY_STATS
//增加统计计数
++td->counts->coeff_base_eob_multi[cdf_idx][txsize_ctx][plane_type][coeff_ctx][AOMIN(level, 3) - 1];
} else {
//增加统计计数
++td->counts->coeff_base_multi[cdf_idx][txsize_ctx][plane_type][coeff_ctx][AOMIN(level, 3)];
}
//如果系数绝对值大于NUM_BASE_LEVELS
if (level > NUM_BASE_LEVELS) {
const int base_range level - 1 - NUM_BASE_LEVELS;
int br_ctx;
//如果eob等于1
if (eob == 1)
br_ctx = 0;
else
br_ctx = get_br_ctx(levels, pos, bwl, tx_class);
//循环更新CDF
for (int idx = 0; idx < COEFF_BASE_RANGE; idx += BR_CDF_SIZE - 1) {
//计算k
const int k = AOMMIN(base_range - idx, BR_CDF_SIZE - 1);
//更新coeff_br_cdf
update_cdf(ec_ctx->coeff_br_cdf[AOMMIN(txs_ctx, TX_32X32)][plane_type][br_ctx], k, BR_CDF_SIZE);
//循环处理LPS
for (int lps = 0; lps < BR_CDF_SIZE - 1; lps ++) {
#if CONFIG_ENTROPY_STATS
//增加统计计数
++td->counts->coeff_lps[AOMMIN(txclass_ctx, TX_32x32)[plane_type][lps][br_ctx][lps == k];
if (lps == k)
break;
}
//增加统计计数
++td->counts->coeff_lps_multi[cdf_idx][AOMMIN(txsize_ctx, TX_32X32)][plane_type][br_ctx][k];
#endif// 如果k小于BR_CDF_SIZE-1,跳出循环if (k < BR_CDF_SIZE - 1)break;
}
//如果第一个系数不为0
if (qcoeff[0] != 0) {
update_cdf(ec_ctx->dc_sign_cdf[plane_type][dc_sign_ctx], qcoeff[0] < 0, 2);
return 0;
}
//计算并返回成本
cost += av1_cost_coeffs_txb_loop_cost_eob(
ctx, eob, scan, qcoeff, coeff_contexts, coeff_costs, dc_sign_ctx, levels, bwl, transform_type);// 返回成本return cost;
}
}
}
相关文章:
SVTAV1函数分析-svt_av1_cost_coeffs_txb
一 函数作用 函数svt_av1_cost_coefss_txb是一个与AV1视频编码相关的函数,主要用于计算变换块(Transform Block)中系数的成本(Cost)。在视频编码中,特被是在AV1编码中,计算系数的成本对于模式决策(Mode Decision)和熵编码(Entropy Coding) 等…...
【Linux加餐-验证UDP:TCP】-windows作为client访问Linux
一、验证UDP-windows作为client访问Linux UDP client样例代码 #include <iostream> #include <cstdio> #include <thread> #include <string> #include <cstdlib> #include <WinSock2.h> #include <Windows.h>#pragma warning(dis…...
qt+opengl 加载三维obj文件
1前面我们已经熟悉了opengl自定义顶点生成一个立方体,并且我们实现了立方体的旋转,光照等功能。下面我们来用opengl来加载一个obj文件。准备我们首先准备一个简单的obj文件(head.obj)。资源在本页下载 2 在obj文件里面,…...
日报日报流量分析
快捷键 CtrlK,选择需要抓包的网卡 CtrlF可以进行关键字搜索 CtrlM,标记数据包 CtrlShiftN跳到标记处 查看包有多少协议Protocol Hierarchy(协议分级) 搜了一下TCP协议,是互联网最基本的协议࿰…...
SQL:CASE WHEN使用详解
文章目录 1. 数据转换与映射2. 动态条件筛选3. 多条件分组统计4. 数据排名与分级5. 处理空值与默认值6. 动态排序 CASE WHEN 语句在 SQL 中是一个非常强大且灵活的工具,除了常规的条件判断外,还有很多巧妙的用法,以下为你详细总结:…...
在 Unreal Engine 5 中制作类似《鬼泣5》这样的游戏时,角色在空中无法落地的问题可能由多种原因引起。
系列文章目录 文章目录 系列文章目录前言一、实现步骤二、涉及到的蓝图三、如何把敌人击飞到空中 前言 在 Unreal Engine 5 中制作类似《鬼泣5》这样的游戏时,角色在空中无法落地的问题可能由多种原因引起。 一、实现步骤 角色碰撞设置 确保角色的碰撞组件&…...
mapbox进阶,添加鹰眼图控件
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.2 ☘️mapboxgl.Map style属性1.3 ☘️mapboxgl-minimap 鹰眼控件二、🍀添加…...
k8s污点与容忍
k8s污点与容忍 k8s污点管理常用命令effect标记值查看污点添加污点删除污点 node污点与容忍污点容忍yaml示例容忍放大基于污点的驱逐驱逐时排除指定服务 设置master调度设置master尽量不调度允许master节点调度pod恢复Master Only状态将node标记为不可调度状态(节点警戒)设置nod…...
算法刷题记录——LeetCode篇(9.1) [第801~810题]
更新时间:2025-03-29 算法题解目录汇总:算法刷题记录——题解目录汇总技术博客总目录:计算机技术系列博客——目录页 优先整理热门100及面试150,不定期持续更新,欢迎关注! 801. 使序列递增的最小交换次数…...
AOA与TOA混合定位,MATLAB例程,自适应基站数量,三维空间下的运动轨迹,滤波使用EKF
本代码实现了一个基于 到达角(AOA) 和 到达时间(TOA) 的混合定位算法,结合 扩展卡尔曼滤波(EKF) 对三维运动目标的轨迹进行滤波优化。代码通过模拟动态目标与基站网络,展示了从信号测量、定位解算到轨迹滤波的全流程,适用于城市峡谷、室内等复杂环境下的定位研究。 文…...
【vllm/瞎折腾】在内网wsl上安装vllm并尝试多节点部署(失败了)
目录 说在前面miniconda安装外网创建虚拟环境创建节点一的虚拟环境创建节点二的虚拟环境 内网配置环境配置节点一的环境配置节点二的环境 vllm多节点配置节点一(主节点)配置节点二配置 部署LLM(失败)补充:wsl2设置ulimit补充:wsl安装libcuda补充…...
Mayo Clinic Platform在人工智能医疗领域的现状及启示意义研究
一、引言 1.1 研究背景与意义 在科技飞速发展的当下,人工智能(AI)已逐渐渗透至各个行业,医疗领域作为关乎人类生命健康的重要领域,也迎来了人工智能技术带来的深刻变革。人工智能医疗,作为人工智能与医疗行业深度融合的产物,正重塑着全球医疗的格局。 从全球范围来看,…...
k8s部署教程
Kubernetes 1. 使用Kubernetes部署Web服务器 我们的目标是部署三个实例,可以让用户直接访问。三个实例,这样即便一个崩溃了,也还有两个,比较不容易出问题。实际中你要根据自己的业务来判断。也就是说,我们需要一个…...
java基础:常见类和对象
1.常见类和对象: java.lang.Object类,Java中的每个类都直接或间接地继承自Object类,如果没有明确指定一个类继承另一个类,那么它的默认父类就是Object类; 例如多态: package java_jichu;public class ja…...
了解遗传算法的Matlab程序的奥妙之处
老板突然想要了解遗传算法的Matlab程序,我们需要先理清楚他们的需求。首先,老板可能对遗传算法有一定的了解,但不太清楚如何在Matlab中具体实现。他可能是一个学生或者研究人员,需要应用到某个项目中,比如优化问题。老板可能希望得到一个结构清晰的步骤说明,以及具体的代…...
Java学习------源码解析之StringBuilder
1. 介绍 String中还有两个常用的类,StringBuffer和StringBuilder。这两个类都是专门为频繁进行拼接字符串而准备的。最先出现的是StringBuffer,之后到jdk1.5的时候才有了StringBuilder。 2. StringBuilder解析 从这张继承结构图可以看出: S…...
【漫话机器学习系列】163.方差膨胀因子(Variance Inflation Factor, VIF)
方差膨胀因子(Variance Inflation Factor, VIF)详解 1. 什么是方差膨胀因子? 方差膨胀因子(Variance Inflation Factor, VIF)是一种用于衡量回归分析中多重共线性(Multicollinearity)程度的指…...
蓝桥杯省模拟赛 字符串拼接
问题描述 给定四个字符串 a,b,c,d,请将这四个字符串按照任意顺序依次连接拼成一个字符串。 请问拼成的字符串字典序最小是多少? 输入格式 输入四行,每行包含一个字符串。 输出格式 输出一行包含一个字符串,表示答案。 样例…...
前端路由守卫与后端权限验证,仅使用路由守卫是否安全?
前后端分离架构的安全原则 后端必须对所有 API 接口进行权限验证前端仅负责用户界面的重定向安全策略应始终由后端最终决定 问题1:前端设置路由守卫是否可以阻挡用户直接通过URL访问??? 前端路由守卫(如 Vue Router …...
React-nodejs 练习 个人博客
1.主要功能模块: 文章管理:CRUD操作 用户系统:注册、登录、权限控制评论系统:文章评论功能 2.技术栈: 前端:React Ant Design React Router后端:Express MongoDB 通信:RESTful…...
AI三大主义 和 深度学习三大主义
在人工智能(AI)研究领域,"三大主义"通常指三种核心方法论或思想流派,它们代表了不同的技术路径和哲学观点。以下是主流的划分方式: 1. 符号主义(Symbolicism) 核心思想:智…...
Linux实现生产者消费者模型(基于阻塞队列)
目录 概念及优势 代码实现 概念及优势 生产者消费者模型是一种用于线程同步的模型,在这个模型中有两种角色,生产者生产数据,消费者消费数据。有三种关系,生产者与生产者,消费者与消费者,生产者与消费者。…...
UE5 UE4 右键/最大化-菜单-不显示/闪/黑色/黑屏--修复方法
先关闭UE5 、UE4 编辑器。 进入这个网站:https://nvidia.custhelp.com/app/answers/detail/a_id/5157 网速慢,换成这个下载:https://download.csdn.net/download/qq_21153225/90546310 下载:mpo_disable.reg 的文件 只双击“mpo…...
[ C语言 ] | 从0到1?
目录 认识计算机语言 C语言 工欲善其事必先利其器 第一个C语言代码 这一些列 [ C语言 ] ,就来分享一下 C语言 相关的知识点~ 认识计算机语言 我们说到计算机语言,语言,就是用来沟通的工具,计算机语言呢?就是我们…...
4.训练篇2-毕设篇
resnet # 1. 从 torchvision 中加载预训练的 ResNet18 模型 # pretrainedTrue 表示使用在 ImageNet 上预训练过的参数,学习效果更好 base_model_resnet18 models.resnet18(pretrainedTrue)# 2. 获取 ResNet18 模型中全连接层(fc)的输入特征…...
Ubuntu 系统中,每日健康检查
一、手动检查命令(基础项) 1. 系统资源监控 内存使用: free -h # 查看内存和交换空间使用情况 cat /proc/meminfo | grep -i "memavailable" # 查看可用内存CPU 负载: top -n 1 -b | grep "load ave…...
#CX# UVM中的virtual sequence 和 virtual sequencer 的用途
在UVM中,Virtual Sequence(虚拟序列) 的核心用途是协调多个物理Sequencer上的Sequence执行,以实现跨接口、跨组件的复杂事务同步和场景控制。 1. 核心用途 多接口协同测试 当验证场景需要多个接口(如DUT的AXI、I2C、UART接口)同时或按特定顺序发送事务时,Virtual Seque…...
vue:突然发现onok无法使用
const that this;this.$confirm({title: "修改商品提示",content: "如果当前商品存在于商品活动库,则在商品活动库的状态会下架",onOk: function () {that.submitForm();}}); 突然发现 this.$confirm无法进入onok 最终发现是主题冲突&#x…...
开发过程中需要安装的浏览器插件
Vue.js devtools https://chromewebstore.google.com/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd?hlzh-CN&utm_sourceext_sidebar ModHeader https://chromewebstore.google.com/detail/modheader-modify-http-hea/idgpnmonknjnojddfkpgkljpfnnfcklj?utm…...
基于javaweb的SpringBoot房屋出租系统设计与实现(源码+文档+部署讲解)
技术范围:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…...
小程序某点餐平台全自动化实现思路
某德基全自动化实现 一、实现思路二、具体步骤1、分析接口2、破解接口3、解决自动支付4、获取订单 三、其他 以下内容仅供学习交流使用 粗略讲解一下思路,要完全实现只靠以下这些内容还是不够的。 一、实现思路 全自动化实现用的是小程序版本。我们首先要分析整个…...
红宝书第二十讲:详解JavaScript的Proxy与Reflect
红宝书第二十讲:详解JavaScript的Proxy与Reflect 资料取自《JavaScript高级程序设计(第5版)》。 查看总目录:红宝书学习大纲 一、Proxy的作用:给对象戴上“监听耳机” Proxy(代理)允许你为对象…...
Contactile三轴触觉传感器:多维力感赋能机器人抓取
在非结构化环境中,机器人对物体的精准抓取与操作始终面临巨大挑战。传统传感器因无法全面感知触觉参数(如三维力、位移、摩擦),难以适应复杂多变的场景。Contactile推出的三轴触觉力传感器,通过仿生设计与创新光学技术…...
18-动规-子序列中的 k 种字母(中等)
题目 来源 28. 子序列中的 k 种字母(第一期模拟笔试) 思路 基本分析 子序列的定义 子序列是从原序列中选取部分元素,同时保持这些元素在原序列中的相对顺序所形成的新序列。也就是说,子序列中的元素不需要在原序列中连续出现…...
Lua 数组
Lua 数组 引言 Lua 是一种轻量级、高效的脚本语言,广泛应用于游戏开发、服务器端编程等领域。在 Lua 中,数组是一种非常重要的数据结构,它允许开发者以高效的方式存储和操作一系列数据。本文将详细介绍 Lua 数组的相关知识,包括…...
C 语言的未来:在变革中坚守核心价值
一、从 “古老” 到 “长青”:C 语言的不可替代性 诞生于 20 世纪 70 年代的 C 语言,历经半个世纪的技术浪潮,至今仍是编程世界的 “基石语言”。尽管 Python、Java 等高级语言在应用层开发中占据主流,但 C 语言在系统级编程和资…...
springboot3 基于 logback
1.配置 logging:level:root: ${ROOT_LOG_LEVEL:debug}web: ${ROOT_WEB_LEVEL:info}org.hibernate.orm.jdbc.bind: ${ROOT_SQL_PARAM_LEVEL:info} #打印SQL参数2.基于 logback-spring.xml配置 <?xml version="1.0" encoding="UTF-8"?> <configu…...
网络相关的知识总结1
1.设备可以通过以太网电缆(如双绞线)连接到交换机的端口,交换机也通过以太网电缆连接到路由器。但是如果距离过远,比如跨国路由器如何连接? 1.专用通信线路(如 MPLS、光纤专线):租用…...
Rust vs. Go: 性能测试(2025)
本内容是对知名性能评测博主 Anton Putra Rust vs. Go (Golang): Performance 2025 内容的翻译与整理, 有适当删减, 相关数据和结论以原作结论为准。 再次对比 Rust 和 Go,但这次我们使用的是最具性能优势的 HTTP 服务器库---Hyper,它基于 Tokio 异步运…...
如何使用postman调用多参数接口(包含文件上传)
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 如何使用postman调用包含文件参数的多参数接…...
无人机助力道路智能养护,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建无人机航拍道路交通场景下水泥路面缺陷智能检测识别系统
道路养护是保障交通命脉安全的隐形防线,其重要性不亚于道路建设本身。我国每年因道路病害引发的交通事故占比高达12%,及时修复1平方米的早期裂缝可避免后续数万元的修复成本。在这场与道路病害赛跑的战役中,传统养护模式正遭遇前所未有的挑战…...
28_跨域
目录 promise promise的基本语法 async await try catch promise 静态方法 跨域 跨域的解决方案 1-cors 编辑 2-jsonp方案 3-代理服务器 promise promise 是一个es6新增的语法 承诺的意思 作用:是专门用来解决回调地狱!!!! promise的基本语法 // 基本语法:// Pr…...
【C#.NET】VS2022创建Web API项目
C# Web API 是一种基于 .NET 平台(包括但不限于.NET Framework 和 .NET Core)构建 HTTP 服务的框架,用于创建 RESTful Web 服务。REST(Representational State Transfer)是一种软件架构风格,它利用HTTP协议…...
注意力蒸馏技术
文章目录 摘要abstract论文摘要简介方法预备知识注意力蒸馏损失注意力引导采样 实验结论总结参考文献 摘要 本周阅读了一篇25年二月份发表于CVPR 的论文《Attention Distillation: A Unified Approach to Visual Characteristics Transfer》,论文开发了Attention Distillation…...
Day17 -实例:利用不同语言不同框架的特征 进行识别
前置:我们所需的web站点,都可以利用fofa去搜索,例如:app"flask"这样的语句去找对应的站点,找到后,我们模拟不知道是什么框架,再根据特征去判断它的框架。 ***利用工具可以再去结合大…...
Centos7 安装 TDengine
Centos7 安装 TDengine 1、简介 官网: https://www.taosdata.com TDengine 是一款开源、高性能、云原生的时序数据库(Time Series Database, TSDB), 它专为物联网、车联网、工业互联网、金融、IT 运维等场景优化设计。同时它还带有内建的缓…...
DeepSeek调用API访问,使用AnythingLLM建立本地知识库后开放API调用,ApiFox/PostMan调用本地DeepSeek
上篇文章中我们使用AnythingLLM成功在本地部署了DeepSeek的本地知识库,并且上传了几个文件让DeepSeek学习,可点击查看: 本地部署DeepSeek并使用AnythingLLM建立本地知识库全流程,DeepSeek-R1:7b本地安装部署,DeepSeek-R1本地部署…...
SQL语句---DDL
文章目录 1、SQL语句2、DDL2.1 数据库的操作显示当前的数据库创建数据库指定编码删除数据库切换当前数据库 2.2 数据表的操作显示表创建表显示表结构修改表添加新的字段删除原有字段 修改原有字段删除数据表 2.3 Mysql数据库中常用的数据类型 1、SQL语句 结构化查询语句&#…...
Java实战:实现用户的登录注册功能
系列文章目录 Java文件 I/O流的操作实战和高级UI组件和事件监听的综合 文章目录 系列文章目录前言一、大致流程思路分析:二、定义用户类:三、服务层的实现: 1.保护用户数据功能的实现2.登录操作的实现 四、实现用户的注册界面: 大…...
用LLama factory时报类似Process 2504721 got signal: 1的解决方法
之前用nohup来远程跑LLama factory微调脚本,是没有问题的,但今天发现运行类似下面这个命令时, nohup llamafactory-cli train examples/train_qlora/qwen_lora.yaml 只要一关闭ssh session,就会终止训练,报类似&…...