KalosAner Blog

「山穷水复疑无路,柳暗花明又一村。」

github pages 的 workflow 突然运行失败

问题: 使用 GitHub pages 搭建的博客网页突然不能运行工作流了,提示: 1 2 3 4 5 6 7 The current runner (ubuntu-24.04-x64) was detected as self-hosted because the platform does not match a GitHub-hosted runner image (or that...

vscode 运行 ipynb 代码输出结果不全

问题: vscode 运行 ipynb 代码输出结果不全,提示:Output is truncated. View as a scrollable element or open in a text editor. Adjust cell output settings。 大概意思就是输出被截断了,可以点击 scrollable element 获得滚动条或者在本地编辑器中查看结果,可以...

彻底理解 IO 多路复用实现机制

前言 BIO 、NIO 、AIO 总结 Unix网络编程中的五种IO模型 为了加深对 I/O多路复用机制 的理解,以及了解到多路复用也有局限性,本着打破砂锅问到底的精神,前面我们讲了BIO、NIO、AIO的基本概念以及一些常见问题,同时也回顾了Unix网络编程中的五种IO模型。本篇重点学习理解IO多路复用的底层实现机制。 概念说明 IO 多路复用有三种实现,在介绍sele...

Python运行requirements.txt 文件安装包

从requirements.txt安装依赖 pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple 加上后面的 -i https://pypi.tuna.tsinghua.edu.cn/simple 的作用是指定清华大学的镜像,下载速度更快。

PyTorch、TorchVision、CUDA Toolkit 和 Python 版本的对应关系

截至 PyTorch 2.1 发布时 PyTorch、TorchVision、CUDA Toolkit 和 Python 版本对应表 PyTorch 版本 TorchVision 版本 CUDA Toolkit 版本 Python 版本 2.1.0 0.16.0 ...

Linux网络操作的通用接口:Socket到底是怎么使用的?

什么是socket 相信有一定网络基础知识的读者都清楚,当前的计算机网络体系有着非常清晰的分层,从最底下的物理层、数据链路层到上面的TCP/UDP传输层、应用层等等,每一层都有着属于自己的职责和对应功能。 这样直接来看,网络的使用必然是十分复杂的,虽然其本身分层分界非常清晰,对于我们理解网络的层次、结构和数据流转模式有很好的帮助。但当我们想真正使用时,却带来了非常复杂繁琐的构建过程,想象...

Conda创建虚拟环境并安装Pytorch

概述 本文主要针对在Anaconda3中创建虚拟环境并安装Pytorch学习框架,Ubuntu和Windows下操作基本一致。 创建虚拟环境 在终端下,创建环境的命令是 1 conda create -n your_env_name(虚拟环境名称) python==xx(想要创建的虚拟环境的python版本号) 可以根据自己需要修改,例如要创建基于python_3.8的1.7版本...

设计模式(一)

1、模板方法(template method) 概念:定义一个操作中的算法的骨架 (稳定),而将一些步骤延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override 重写)该算法的某些特定步骤。 问题:在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用...

设计模式介绍

一、简介 面向对象的设计模型的目的是为了增加可复用性。 客户需求、技术平台、开发团队和市场环境的变化导致软件设计变得很复杂。为了解决这种复杂性有以下两种方法:分解和抽象。 面向对象设计有八大原则(比具体的设计模式更重要): 1、依赖倒置原则(DIP) 高层模块(稳定)不应该依赖于低层模块(变化),二者都应该依赖于抽象(稳定) 。 抽象(稳定)不应该依赖于实现细节(变化) ,实现细...

KalosAner 的奇妙发现

2024-11-18 力扣对C++的中的 priority_queue 的支持有点问题,如下: 1 2 3 4 5 6 7 8 // 直接取堆顶元素会报错 priority_queue<int> heap; cout << heap.top() << endl; // 先插入一个元素再弹出去,取堆顶元素就不会报错,直接输出 heap.size() 也可...