午夜零时
码龄4年
关注
提问 私信
  • 博客:176,146
    社区:31
    问答:41
    176,218
    总访问量
  • 79
    原创
  • 179,949
    排名
  • 123
    粉丝
  • 1
    铁粉
  • 学习成就
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:安徽省
  • 加入CSDN时间: 2021-03-05
博客简介:

qq_55796594的博客

查看详细资料
  • 原力等级
    成就
    当前等级
    5
    当前总分
    1,111
    当月
    3
个人成就
  • 获得106次点赞
  • 内容获得31次评论
  • 获得594次收藏
  • 代码片获得1,281次分享
创作历程
  • 1篇
    2024年
  • 8篇
    2023年
  • 44篇
    2022年
  • 26篇
    2021年
成就勋章
TA的专栏
  • 图像、音频的信息隐藏
    5篇
  • 爬虫学习之旅
    9篇
  • makedown
    1篇
  • c++
    5篇
  • 机器学习
    17篇
  • unix网络编程
    6篇
  • linux之旅
    7篇
  • 目标检测
    4篇
  • 算法
    2篇
  • 前端之旅
    5篇
  • paddlepaddle
    12篇
  • speechbrain
    1篇
  • python
    1篇
兴趣领域 设置
  • 编程语言
    python
  • 人工智能
    深度学习神经网络自然语言处理pytorch图像处理nlp
  • 音视频
    语音识别
创作活动更多

AI大模型如何赋能电商行业,引领变革?

如何使用AI技术实现购物推荐、会员分类、商品定价等方面的创新应用?如何运用AI技术提高电商平台的销售效率和用户体验呢?欢迎分享您的看法

181人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

ffmpeg 切割音频文件,各种格式(wav, flac, mp3, m4a等)

ffmpeg切分m4a音频的方法,绕过ffmpeg引擎不支持m4a编码的问题。
原创
发布博客 2024.03.17 ·
1964 阅读 ·
10 点赞 ·
1 评论 ·
12 收藏

荔枝FM语音批量下载

支持荔枝FM的免费资源下载,尊重音频版权,不要用于商业传播。被网上的下载器坑怕了,想收我的钱,没门,我自己写一个。
原创
发布博客 2023.12.05 ·
473 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

商品价格预测的transformer模型优化

发布问题 2023.10.03 ·
17 回答

c语言 算法 输入参数 找区间数据

答:

题主应该是想要处理一些数据文件,那么使用python会好一些,python支持跨平台且拥有丰富的第三方处理库。
下面是用python实现的代码和运行结果。

img

针对上述文本,其运行结果如下:

img

代码如下,并对变量和逻辑做了一定的注释。

lines = []
def choice(left:int=0, right:int=0, num:int=0)->bool:
    # cnt 记录符合要求的a、b、c段的数量,cnt 等于3表示a、b、c都符合与num相差为2的要求
    global lines
    cnt = 0
    for i in range(left, right):
        if lines[i] == "..":
            tmp = int(lines[i-1])
            if tmp == num+2 or tmp == num-2:
                cnt+=1
    tmp = int(lines[right-1])
    if tmp == num+2 or tmp == num-2:
        cnt+=1
    return cnt == 3 
        

def interval(filename:str, num:int=0):
    global lines
    with open(filename, 'r', encoding='utf-8') as f:
        lines = f.read().splitlines()
    if lines == None:
        return 0
    # left记录一个区间的起始,right记录一个区间的结束,每找到一个区间就判断一下其是否符合要求
    left = 0; right = 0

    for i in range(len(lines)):
        if lines[i] == '——':
            left = right
            right = i
            if right > left and choice(left, right, num):
                res = lines[left+1:right]
                print(res)
                # res.remove('..') #可以选择不要".."间隔a、b、c段
                # print(res)

            

if __name__ == "__main__":
    interval("a.txt", 5)

此外,值得注意的是分段使用的符号是——,中文的破折号,在判断时容易起到迷惑作用。

回答问题 2023.09.13

力扣寻找数组中第k小元素遇到的问题

答:

本题的二分法确实具有迷惑性,题主的二分法将矩阵的下标和矩阵的值搞混了。下图是题解中的矩阵举例,每行呈递增趋势,每列呈递增趋势,并不是后一行一定大于前一行,如matrix[3][0] < matrix[0][3]. 这可能是造成题主理解错题目的根本原因。

img

下面给出了修改后的代码,并附带了每一处修改的原因。代码经过leetcode验证通过率100%。

class Solution {
public:
    int kthSmallest(vector<vector<int>>&matrix,int k){
        int count=0;
        int n = matrix.size()*matrix[0].size();
        // int left=0;
        // int right=n-1; 修改此处【1】,left是矩阵的最小值,right是矩阵的最大值。
        int left = matrix[0][0];
        int right = matrix[matrix.size()-1][matrix.size()-1];
        int mid;
        while(left<right){
            mid=left+(right-left)/2;
            int i=matrix.size()-1,j=0;
            // count = 0; count每统计完一次要清零
            // while(i>=0&&j<=matrix[0].size()-1){
            //     if(matrix[i][j]>matrix[mid/n][mid%n]){ 修改此处【2】, 和【1】的修改理由相同,mid是数值不是下标
            //         j++;
            //     }
            //     else i--;
            //     count++;        // count的统计方式不对
            // }
            while(i>=0&&j<=matrix[0].size()-1){
                if(matrix[i][j]<=mid){
                    count += i+1; 
                    j++;
                }
                else i--;
            }
    
            // if(count>k){ 修改【3】,此处的二分法区间对应错误
            //     left=mid+1;
            // }
            // else if(count<k){
            //     right=mid-1;
            // }
            if(count >= k){
                right=mid;
            }
            else if(count<k){
                left = mid+1;
            }
        }
        // return matrix[mid/n][mid%n]; 这里同样是,left是返回值
        return left;
    }
};

关于第2处修改,题主可能会有疑惑,为什么count += i+1; 这里其实是按列统计的,如下图,扫描到6时,将6之上的一整列统计进去,因为其上的数必然小于6,也就小于mid。

img


关于返回值题主可能会疑惑怎么保证返回的left一定是矩阵中的值,leetcode的评论中有一句很精辟的理解

因为每次循环中都保证了第k小的数在left~right之间,当left==right时,第k小的数即被找出,等于right或left

img

回答问题 2023.09.12

python代码下标问题

答:

很明显的一个内存未分配问题。

img

报错位置在for循环中,此时你的dp数组只有两个数,下标范围为[0, 1],而i的值为2,所以dp[i]报错。
解决办法1:

img

先计算得出要保存的值,再append入列表中。
解决办法2:

img

预分配空间,dp数组最终的总长度确定为n,所以是可以预分配的。
此外,因为dp列表下标从0开始分配的,最终结果应为dp[n-1]。

回答问题 2023.08.20

pthread.h中的函数

参考pthrad.h中的函数以及man手册,列举了pthread库中的工具函数并做了分类。pthread库中的重点当然是thread、mutex和condition。此外,pthread提供了读写锁、自旋锁的实现,以及控制多线程启动的pthread_barrier和线程全局变量(thread_local)的实现。帮助我们快速开发多线程的访问控制。
原创
发布博客 2023.04.03 ·
608 阅读 ·
0 点赞 ·
1 评论 ·
3 收藏

C/C++常用数据类型的转换

(如:浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分记录最高的有效位,当整数的有效位数超过浮点数的尾数时,有可能会舍弃一部分精度)在这种情况下,unsigned int 将超越 long int,因为它可以保存更高的值。总结:位数不同的转换采用补零和舍弃的方式,有无符号的转换本质是二进制不变的转换,整型浮点型的转换是舍弃小数,保留整数位的转换。但是有符号数和无符号数的最高位表示不同,所以负数转为无符号 = 2^32 - 负数的绝对值。有符号数,符号位不变,多了裁剪高位,少了高位补零。
原创
发布博客 2023.03.03 ·
773 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

torchaudio的I/O函数

torchaudio如何加载保存音频、查看音频信息遇到保存为flac格式,报错flac does not support encoding怎么解决torchaudio IO函数的backbone
原创
发布博客 2023.03.02 ·
1759 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

enable_if模板编程实现字节序转换模板

使用enable_if模板编程简单实现字节序转换模板
原创
发布博客 2023.02.25 ·
568 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

统计二进制中比特1的个数

这样从后往前,依次将1置为0同时result+1,最终n为0时,得出result表示共有多少个1。通过这种方式计算非常快,最差时间复杂度为o(n),且仅有减法和与操作这种简单的操作。正数可以得到正确的比特1的数量,负数得到的是。
原创
发布博客 2023.02.19 ·
673 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

通过位运算快速获得二进制前i位为0或1的掩码

所以想要获得前i位为0的二进制掩码,需要将1左移sizeof(T)*8 - i。因此,左移i位后i位为1,前sizeof(T)-i位为0。在前i位置0的基础上。
原创
发布博客 2023.02.16 ·
214 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

一种简单的统计pytorch模型参数量的方法

获取pytorch模型参数量的简单直接的方法
原创
发布博客 2023.02.11 ·
850 阅读 ·
2 点赞 ·
1 评论 ·
0 收藏

unix网络编程(四) 线程池并发服务器

问题2解决思路就是利用回调机制,我们同样可以借助结构体的方式,对任务进行封装,比如任务的数据和任务处理回调都封装在结构体上,这样线程池的工作线程拿到任务的同时,也知道该如何执行了。创建线程时需要给出入口函数thrRun,该函数的核心功能是从任务队列取任务执行,执行结束再取任务,循环上述步骤。线程池是一个抽象概念,可以简单的认为若干线程在一起运行,线程不退出,等待有任务处理。核心功能:向任务队列添加任务,并通知因任务队列空而阻塞的线程。2.线程池上的线程如何能够执行不同的请求任务?
原创
发布博客 2022.12.11 ·
597 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

c++实现的线程池并发服务器

发布资源 2022.12.11 ·
tar

unix网络编程(四)epoll反应堆

epoll_wait()返回cfd—>cfd回调senddata()—>将cfd摘下来监听读事件—>…epoll_wait()返回cfd—>cfd回调recvdata()—>将cfd摘下来监听写事件—>lfd满足accept—>返回cfd---->read()读数据—>write()给客户端回应。有客户端连接上来—>lfd调用acceptconn()—>将cfd挂载到红黑树上监听其读事件—>有监听fd事件发送—>返回监听满足数组—>判断返回数组元素—>,其中有具体的epoll和epoll反应堆模型的分析。
原创
发布博客 2022.11.21 ·
360 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

unix网络编程(三) 两种模式下的epoll服务端

Edge Triggered (ET) 边缘触发只有数据到来才触发,不管缓存区中是否还有数据。Level Triggered (LT) 水平触发只要有数据都会触发。LT模式是默认的工作模式,在这种模式下epoll相当于一个效率较高的poll。
原创
发布博客 2022.11.14 ·
709 阅读 ·
1 点赞 ·
0 评论 ·
1 收藏

unix网络编程(二) select实现tcp的sever端

(select)初始化fd_set ===> select监听fd_set ===> fd_set中未变化的位置置零(0)依据fd_set中剩余的有变化的位置(1) ===> 判断是监听套接字还是已连接的套接字。select 即是采用轮询内核的方式,获知哪些连接发送或接受消息了。(start)监听套接字:创建绑定监听。select 最大监听1024个连接。
原创
发布博客 2022.11.04 ·
589 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

unix网络编程(一) 封装常用的socket函数

sever端socket连接的流程:创建socket ====> 绑定ip和端口 ====> 监听listen ====> 接受连接accept。由于上述流程是通用的,过程中还有大量的错误判断和网络字节序的转换,因此封装成一些函数方便调用。其中accpet易受信号中断和软件中断,使用goto语句,在中断时再次accept。
原创
发布博客 2022.11.04 ·
344 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

makedown文字上色技巧

makedown是开发者常用的编辑器,其特点是以代码的风格组织页面,深受开发者欢迎。然而makedown本身不支持为文字添加颜色高亮显示,初学者面对这种需求时可能会无从下手。这里提供两种为文字添加颜色高亮的方法,仅供参考,欢迎指导交流。
原创
发布博客 2022.09.14 ·
884 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏
加载更多