一只可爱的北斋厨的随笔 - 计算机基础操作
解决 nvitop 显示 `No Such Process` 的问题，僵尸显存占用
在服务器上发现 nvitop 显示某张 GPU 显存被占用，但进程一栏是：No Such Process直接执行：kill -9 <PID>又提示：No such process这种情况一般是进程异常退出、子进程或僵尸进程没有正确释放 GPU 资源导致的。1. 用 sudo 查看真实占用进程普通用户可能看不全其他用户的 GPU 进程，所以要用 sudo：sudo fuser -v /dev/nvidia*如果只看某张卡，比如 GPU 1：sudo fuser -v /dev/nvidia1输出中可以看到占用该 GPU 的用户和 PID，例如：USER PID COMMAND xxx 12345 python2. 切换到对应用户找到占用显存的用户后，切换到该用户：sudo su - <username>例如：sudo su - xxx3. 清理该 GPU 上的进程在对应用户下执行：fuser -v /dev/nvidia1确认是这个用户的进程后，可以清理：fuser -v /dev/nvidia1 | xargs -t -n 1 kill -9注意：这条命令会杀掉 /dev/nvidia1 上查到的进程，慎用。多人服务器上一定要先确认不要误杀别人的任务。4. 再检查 GPU 是否释放退出用户：exit然后查看：nvidia-smi或者：nvitop如果显存释放了，说明处理成功。总结我的处理流程是：sudo fuser -v /dev/nvidia* sudo su - <占用显存的用户> fuser -v /dev/nvidia1 fuser -v /dev/nvidia1 | xargs -t -n 1 kill -9 nvidia-smi核心点：fuser 查 GPU 占用时最好用 sudo；普通用户可能看不到完整 GPU 进程；找到对应用户后，切换到该用户再 kill；No Such Process 不能直接 kill 原来的 PID，要通过 /dev/nvidiaX 找真实占用进程；清理整张卡进程前要确认不会影响其他人的任务。
任务描述：任务 A，识别天井，识别天井内部的目标类别建议拍摄方案：两阶段拍摄第一阶段：权重 a 只识别天井，边框框住天井整体，拍摄视角内只能有一个目标，或者视角内的每个目标均有一一对应的标注，不能漏标,否则可能将未标注的样本当成负样本，进而漏检。天井距离20m，空中30m，对应天井模型和空中高度1.5m，1920X1080尺寸，30FPS拍摄，命名格式为 类别号_A.MP4，天井上下左右四个摆放位置，镜头仅平移，不旋转。第二阶段：天井仅摆正，在裁切出天井的区域后再标注目标类别所处的白色图标区域。只平移，不旋转。任务 B，识别数字第一阶段同任务 A 第一阶段第二阶段识别数字，天井仅摆正，在裁切出天井的区域后再标注数字。只平移，不旋转。多位数字，训练期间只放一个数字，分别在十位和个位上进行训练。附注：1、对于天井和天井内部的目标识别，建议两阶段训练。第一阶段识别天井，第二阶段识别天井内容物2、两阶段训练，第一阶段建议天井上下左右四个摆放位置，镜头仅平移，不旋转。这样的训练数据可以直接用于第二阶段。也要注意输出的时候是1920 X 1080而非1080X1920。3、一个视频仅有1个类别4、目标不要总在相机成像中心。5、单一类别拍摄总时长一般为40秒。6、对于一阶段识别天井，目标不能在训练集仅有一个朝向，否则会导致在测试阶段漏检其他朝向
路由器IP访问无问题，但下属的MAC无法解析DNS
若在MAC手动指定DNS后发现可以访问，可以认定为DHCP设置错误。注意分发的IP和路由器IP一致。
在线性回归中，帽子矩阵（也被称为投影矩阵或影响矩阵）是一个非常重要的概念。帽子矩阵的作用是将观测数据的特征向量（输入变量）映射到模型的预测值上。这个矩阵的名称来源于它的功能：它“戴帽”在原始响应变量上，将其转换为拟合值。数学定义和作用在标准的线性回归模型中，我们通常有以下形式：[ Y = X\beta + \epsilon ]其中：( Y ) 是响应变量的向量（n维向量）。( X ) 是设计矩阵，包含了所有观测的特征向量（n×p矩阵，n是样本数，p是特征数）。( \beta ) 是模型参数的向量（p维向量）。( \epsilon ) 是误差项的向量。在这个模型中，我们的目标是找到参数向量 ( \beta )，使得误差 ( \epsilon ) 的平方和最小。使用最小二乘法估计 ( \beta ) 的解为：[ \hat{\beta} = (X^T X)^{-1} X^T Y ]当我们用这个估计值来计算预测值 ( \hat{Y} ) 时：[ \hat{Y} = X \hat{\beta} = X (X^T X)^{-1} X^T Y ]这里的 ( X (X^T X)^{-1} X^T ) 就是所谓的帽子矩阵 ( H )，因此：[ \hat{Y} = H Y ]帽子矩阵的特性帽子矩阵 ( H ) 具有以下重要特性：对称性：( H = H^T )幂等性：( H^2 = H )，意味着多次应用帽子矩阵于 ( Y ) 上得到的结果不变。迹和秩：帽子矩阵的迹（即对角线上元素的总和）等于矩阵的秩，且等于特征数 ( p )（不包括截距项时）。帽子矩阵的作用和意义预测值的直接计算：帽子矩阵可以直接用来计算出拟合值 ( \hat{Y} )。影响分析：帽子矩阵的对角元素 ( H_{ii} ) 反映了第 ( i ) 个观测值对其预测值 ( \hat{y}_i ) 的影响程度。如果 ( H_{ii} ) 的值异常地高，表明该观测点是一个高杠杆值点，对回归模型的拟合有较大的影响。理解数据空间的投影：帽子矩阵将原始的响应空间投影到由特征向量张成的空间中，这有助于理解数据的结构和线性回归模型如何捕捉数据的特征。总的来说，帽子矩阵在理解和分析线性回归模型中扮演着核心角色，特别是在模型的诊断和验证中。
查看硬盘情况df -h创建好挂载位置mkdir -p /media/data1获取要自动挂载的分区的UUID和分区类型TYPEsudo blkid显示信息如下，这里只摘出来一条，这条是我要挂载的硬盘。/dev/sdf: UUID="f69d03b0-9ba3-4553-98b8-756a3ec19a74" TYPE="ext4" 修改fstab文件sudo vi /etc/fstab在最下面添加要挂载的盘，建议用uuid# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/sda3 during curtin installation /dev/disk/by-uuid/55adsfad460-6cd2-4e26-a79f-5ba8351fafcf / ext4 defaults 0 0 # /boot was on /dev/sda2 during curtin installation /dev/disk/by-uuid/d8asdf092-e938-47fc-bb5e-7010667bb3b3 /boot ext4 defaults 0 0 # /boot/efi was on /dev/sda1 during curtin installation /dev/disk/by-uuid/5C76-6134 /boot/efi vfat defaults 0 0 /swap.img none swap sw 0 0 UUID="f69d03b0-9ba3-4553-98b8-756a3ec19a74" /media/data1 ext4 defaults 0 2 然后执行全部挂载，或重启后自动生效会把刚才添加到盘全部挂载上。sudo mount -a附：fstab中 每个字段代表的含义第一列可以是实际分区名，也可以是实际分区的卷标（Lable）。如果磁盘是SATA接口，且有多个磁盘，则每个磁盘被标记为 /dev/hda 、 /dev/hdb、 /dev/hdc 等以此类推；而每个磁盘的分区被标记为 /dev/hda1、 /dev/hda2等。如果磁盘是SCSI类型，则多个磁盘会被分别标记为 /dev/sda、/dev/sdb等等。分区同理。第二列是挂载点。挂载点必须为当前已经存在的目录，为了兼容起见，最好在创建需要挂载的目标目录后，将其权限设置为777，以开放所有权限。第三列为此分区的文件系统类型。Linux可以使用ext2、ext3等类型，此字段须与分区格式化时使用的类型相同。也可以使用 auto 这一特殊的语法，使系统自动侦测目标分区的分区类型。auto通常用于可移动设备的挂载。第四列是挂载的选项，用于设置挂载的参数。常见参数如下：auto: 系统自动挂载，fstab默认就是这个选项defaults: rw, suid, dev, exec, auto, nouser, and async.noauto 开机不自动挂载nouser 只有超级用户可以挂载ro 按只读权限挂载rw 按可读可写权限挂载user 任何用户都可以挂载请注意光驱和软驱只有在装有介质时才可以进行挂载，因此它是noauto第五列是dump备份设置。当其值设置为1时，将允许dump备份程序备份；设置为0时，忽略备份操作；第六列是fsck磁盘检查设置。其值是一个顺序。当其值为0时，永远不检查；而 / 根目录分区永远都为1。其它分区从2开始，数字越小越先检查，如果两个分区的数字相同，则同时检查。当修改完此文件并保存后，重启服务器生效。注意，若想偷懒，可用/dev/hda1 直接替代UUID
1、Linux服务器重装系统后，需要自己手动安装openssh-serversudo apt-get install openssh-server 2、客户端若无法连接ssh到目标服务器，且目标服务器曾重装过ssh服务，请自行删除known_hosts文件，获得新的服务器密钥。
Pycharm debug时变量无法立即显示，正在评估（evaluating ）...
Pycham 调试时将鼠标移至变量上，不显示变量具体信息，无法进行下一步调试，而出现正在评估（evaluating），此时需要设置genent兼容，具体操作如下：文件（file） – 设置（settings）-- 构建、执行、部署（build, execution, deployment） – Python调试器（Debugger）在该项中勾选Gevent兼容（Gevent cmpatible）后，点应用（apply）结束。————————————————版权声明：本文为CSDN博主「HLBayes」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。原文链接：https://blog.csdn.net/HLBoy_happy/article/details/124067099