人工智能
文章平均质量分 55
许野平
非常喜欢软件设计这份工作,有不错的数学基础,喜欢读书、摄影与音乐。
展开
-
人工智能协助我设计 Restful API 的过程实录,感觉很强大!
这种设计的好处是,它遵循了RESTful原则中的无状态性(statelessness),即每个请求都是独立的,服务器不保留任何关于客户端状态的信息。我用/api/project/{project_id}/status表示状态,并且状态的值有润=run和stop两种,然后用PUT去修改status,不符合 RESTful的状态转移的原则吗?请注意,虽然URI的设计在RESTful API中非常重要,但它主要用于标识资源和定义资源之间的关系,而不是直接表示资源的状态。次和成功执行一次,效果是等价的。原创 2024-05-10 13:13:40 · 932 阅读 · 1 评论 -
GPU 的显存位宽
RTX 3060的显存位宽为192-bit,而RTX 3070的显存位宽更高,为256-bit。这意味着RTX 3070能够在一个时钟周期内传输更多的数据,从而可能提供更好的性能,特别是在需要高数据传输速率的应用场景中。显存位宽是显存在一个时钟周期内所能传送数据的位数,位数越大,则在周期内所能传输的信息量就越大,这意味着显存的数据吞吐量和传输性能会更高。因此,在选择显卡时,除了考虑显存容量和显卡核心的性能外,显存位宽也是一个非常重要的因素,它直接影响到显卡的性能表现。原创 2024-05-10 09:32:06 · 216 阅读 · 0 评论 -
python下常用的图像处理工具
需要注意的是,每个工具都有其独特的特点和适用场景,因此在选择使用哪个工具时,应根据具体的图像处理需求和项目要求进行考虑。同时,建议查阅相关的文档和教程,以更好地了解这些工具的使用方法和功能。除了上述提到的工具外,还有一些其他的库也值得一试,如SimpleITK(用于医学图像处理)、mahotas(专注于计算机视觉任务)等。原创 2024-04-28 16:12:28 · 534 阅读 · 3 评论 -
nvidia-smi 输出内容详解
nvidia-smi(NVIDIA System Management Interface)是一种命令行实用程序,主要用于监控和管理NVIDIA GPU(图形处理器)的状态和性能。它提供了一个简单而强大的方式来获取有关GPU的实时信息,这些信息包括GPU的使用情况、温度、内存占用等,同时也支持进行一些基本的管理操作。在大多数情况下,nvidia-smi是与NVIDIA GPU驱动程序一起安装的。原创 2024-04-23 11:14:32 · 1205 阅读 · 0 评论 -
我用文心一言证明了哥德巴赫猜想
第七步,由于我们在第四步和第六步中都得到了与假设矛盾的结果,所以我们的假设——存在某个大于2的偶数n不能表示为两个质数之和——是不成立的。第三步,根据质数的定义,我们知道2是最小的质数。那么,我们考虑n−2。第四步,如果n−2是质数,那么n可以表示为2+(n−2),即两个质数之和,这与我们的假设矛盾。第一步,设n为大于2的任意偶数,那么n可以表示为2k,其中k是大于1的整数。第六步,因此,n可以表示为2+pq,即两个质数之和,这与我们的假设矛盾。因此,我们证明了任何大于2的偶数都可以表示为两个质数之和。原创 2024-04-21 13:18:26 · 306 阅读 · 0 评论 -
256线程的CPU有哪些型号?
除了AMD的EPYC系列,目前市场上其他主流的CPU,如Intel的Xeon系列或AMD的Ryzen Threadripper系列,虽然也提供多线程技术,但它们的线程数通常没有达到256线程这么高的水平。值得注意的是,线程数并不是衡量CPU性能的唯一指标。在选择CPU时,还需要考虑其他因素,如核心数、主频、缓存大小、功耗以及具体的应用需求等。最后,随着技术的不断进步,未来可能会有更多具有256线程或更多线程的CPU型号出现,因此在选择时请务必参考最新的产品信息和技术规格。原创 2024-04-14 01:59:25 · 376 阅读 · 0 评论 -
与GPT聊天,我发现中文根本不需要什么语法
原创 2024-01-25 09:58:38 · 460 阅读 · 0 评论 -
Python 下中文分词算法的简单示例
Python 下中文分词算法的简单示例。原创 2023-06-02 14:13:18 · 366 阅读 · 0 评论 -
Pytorch 的 LSTM 模型的简单示例
Pytorch 的 LSTM 模型的简单示例原创 2023-05-28 17:43:39 · 6304 阅读 · 2 评论 -
构建seq2seq模型的常见问题
构建seq2seq模型的常见问题。原创 2023-05-28 14:59:09 · 1361 阅读 · 0 评论 -
pytorch 提供了几个子模块?
以上是PyTorch主要的子模块,每个子模块又包含多个子模块和功能。原创 2023-05-25 10:21:42 · 186 阅读 · 0 评论 -
GPT4生成的 MNIST 算法模型和后续的改进实验
用 GPT4 生成了 MNIST 算法模型。第一个模型,查找一下,发现于某教材内容几乎完全一样。感觉这家伙肯定后台参考了某个现成的数据库。重新生成了一个,感觉结构有些奇葩,而且有个别错误,稍作调整,训练一下,准确率大约 82%。运行了一下,精度 85%。原创 2023-05-24 16:47:36 · 471 阅读 · 0 评论 -
Pytorch 中如何对训练数据进行增强处理?
假设我们的数据集是一个手写数字的图像数据集,其中每一张图像包含一个手写数字和对应的标签。我们可以通过随机旋转、平移、缩放和翻转等操作,对原始的图像进行变换增广(Data Augmentation)以增强模型的训练效果。然后,我们可以利用这个变换来对原始数据集进行处理,生成一个新的增广后的数据集。在实际使用过程中,可以将多个变换组合起来,以更大程度地提高模型的性能。操作来随机对图像进行旋转,最大旋转角度设置为30度,并将图像转换为。在上面的代码中,我们首先定义了一个。变换,其中包含了一个。原创 2023-05-24 16:34:53 · 446 阅读 · 0 评论 -
Pytorch 中张量的数据结构
它是 PyTorch 广泛使用的核心数据结构,用于表示神经网络中的数据,包括输入数据,参数以及梯度等。与 NumPy 中的 ndarrays 类似,PyTorch 张量也可以进行类似的数学和操作。需要注意的是,对原始张量进行 reshape 操作实际上可以看作在内存中设法切割/拼接数据来新建一个张量对象,并不影响原始张量。我们还可以通过各种张量操作来改变张量的形状、增删元素以及级联此类更高级的数据转换。分别创建了两个张量,并打印出了这些张量的形状、数据类型和存储设备等属性信息。上述代码中首先通过调用。原创 2023-05-23 09:28:57 · 316 阅读 · 0 评论 -
torchvision.datasets.MNIST 的数据结构
对于 MNIST 数据集中的每一个图像, torchvision.datasets.MNIST 返回一个由两个元素组成的元组。第一个元素是 PIL.Image.Image 对象类型的图像,表示该图像的像素矩阵。而第二个元素则是一个整数,表示该图像所代表的数字。MNIST 数据集包含了大量的手写数字图像,每个图像都是 28 x 28 像素大小的灰度图像。通过这些代码,我们可以看到 MNIST 数据集中的每个样本都是一个尺寸为(1, 28, 28)的张量,其中 1 表示普通的灰度图像。原创 2023-05-23 09:26:06 · 1109 阅读 · 0 评论 -
MNIST手写体识别训练过程数据流图
MNIST手写体识别训练过程数据流图。原创 2023-05-23 09:20:38 · 227 阅读 · 0 评论 -
词向量文件格式
表示“apple”这个单词被表示为一个300维的向量,向量中第1个元素为0.1,第2个元素为-0.2,以此类推。词向量文件是一种将文本中的词语或字符表示为向量的方式,它通常用于自然语言处理任务中。在词向量文件中,每个词或字符都被表示为一个向量,而这些向量则被组织成一个矩阵。第二行:文件中所包含的词汇量和向量维度数,通常是用空格分隔,例如“100000 300”表示该文件中包含10万个词,每个词用300维向量来表示。需要注意的是,不同的词向量模型可能有不同的格式要求,但一般遵循上述的基本格式。原创 2023-05-22 19:38:08 · 212 阅读 · 0 评论 -
torch、torch.nn、 torch.optim、torchvision、 torchvision.transforms 功能简介
命令将 PyTorch 框架导入到 Python 程序中,这样我们就可以使用 PyTorch 提供的各种功能了。PyTorch 是一个用于科学计算的机器学习库,具有以下重要功能:张量(Tensor)操作:PyTorch 引入了张量作为其核心数据结构,对张量进行各种操作(如加、减、乘、除、矩阵乘法、转置等)。自动求导:PyTorch 具有自动求导系统,能够自动计算输入变量关于输出变量的导数,并将反向传播算法应用于神经网络中。原创 2023-05-22 18:42:57 · 3380 阅读 · 0 评论 -
在 C++ 代码中调用 NumPy
要在 C++ 代码中调用 NumPy,可以使用 Boost.Python 库。为了这样做,需要安装 Boost 开发库和 NumPy ,并使用 BOOST_PYTHON_MODULE 宏定义来创建一个 Python 模块。以下是一个简单的示例,演示如何创建一个名为。原创 2023-05-22 18:17:34 · 2282 阅读 · 0 评论 -
重写 MNIST 手写体识别模型,并启用多块 GPU并行计算
可惜在我用的服务器上不能运行,程序卡死在训练过程。咨询了一下,原因是我的服务器安装了 8 块K80显卡,由于卡之间通讯问题,不能这样使用。据说,K80 只能同时选择偶数序号卡或奇数序号卡。指定了第 0 块卡。测试了一下,可以运行。原创 2023-05-22 15:14:07 · 510 阅读 · 0 评论 -
关于机器学习(深度学习)训练过程中 batch_size 的意义
batch_size表示每个训练批次的样本数量。在训练神经网络模型时,通常需要将很多样本输入到模型中进行计算得到损失函数,然后利用反向传播算法来更新模型的参数。如果每次只输入一个样本进行计算,会大大增加训练时间和GPU显存的使用量,同时也可能导致训练过程不够稳定。因此,我们通常选择将一定数量的样本作为一个batch输入到模型中进行计算。而batch_size的大小则影响了模型参数的更新速度和训练效果。较小的batch_size可以提升参数更新的速度,但容易受到随机性较大的噪声干扰,导致训练过程波动较大;原创 2023-05-22 10:41:03 · 795 阅读 · 0 评论 -
关于PyTorch中的 torch.utils.data.DataLoader
torch.utils.data.DataLoader是PyTorch中一个用于数据加载的工具类,主要用于将样本数据划分为多个小批次(batch),以便进行训练、测试、验证等任务。该类支持多线程异步数据读取和数据预处理,使得模型训练更高效、更快速。使用DataLoader时需要传入一个Dataset对象,Dataset对象提供了访问样本数据的接口。例如,可以使用PyTorch提供的torchvision.datasets中的一些内置数据集(如MNIST、CIFAR-10等)来构建Dataset对象。原创 2023-05-22 09:05:21 · 1063 阅读 · 0 评论 -
在 windows 下如何安装 pytorch?
安装完成后,可以通过创建一个 Python 脚本来测试 PyTorch 是否正确安装。这个命令会安装 PyTorch 1.8.1、torchvision 0.9.1 和 torchaudio 0.8.1.运行这个脚本并检查输出是否为 PyTorch 的版本号,如果输出正确则 PyTorch 安装成功。在 Windows 上安装 PyTorch 可以使用 pip 或 conda 管理包。希望这些步骤能够帮助您成功安装 PyTorch。打开命令提示符或 PowerShell;原创 2023-05-21 15:19:54 · 952 阅读 · 0 评论 -
Python 中的函数微分是如何实现的?
可以使用 PyTorch 中的自动微分功能来计算函数的导数。在这个例子中,我们定义了一个函数fxx22x1,创建了一个张量x,并且将 requires_grad 设置为 True,表示要对x求导。然后,我们计算了函数在x2处的值yf2,并通过计算了y对x的导数。最后,通过查看x的grad属性,可以得到y对x的导数值,即2x2gradyx∣x26。在实际的使用中,如果我们需要求一个向量值函数的梯度,则只需要对每个变量设置。原创 2023-05-20 18:59:32 · 1080 阅读 · 0 评论 -
torch.utils.data.DataLoader 的功能
支持多种数据集,如 TensorDataset,ImageFolder 等,并且可以根据需要自定义数据集。,我们可以方便地将自己的数据集传入,并在训练时对其进行批量化处理,另外还可以通过自定义。函数来实现对每个 batch 中数据的转换。原创 2023-05-20 16:46:30 · 1209 阅读 · 0 评论 -
word2vec、GloVe、LSA算法的共同特点和区别和优缺点
Word2vec是一种基于神经网络的模型,它通过训练一个前馈神经网络,学习到词汇在向量空间上的表示。GloVe是一种基于全局统计信息和矩阵分解的模型,它通过对整个语料库中的词汇共现矩阵进行矩阵分解,得到词汇的向量表示。LSA是一种基于奇异值分解的模型,它将所有词汇表示为文档-词矩阵的奇异值分解结果。Word2vec和GloVe具有更好的扩展性,而LSA的计算量较大。Word2vec、GloVe和LSA都是常见的词向量表示算法,它们的共同点是都是将词汇表示为低维空间向量,并用这些向量来描述词汇之间的关系。原创 2023-05-19 11:07:46 · 465 阅读 · 0 评论 -
公开的中文语料库有哪些?
中文情感分析数据集ChnSentiCorp:包含正面、负面和中性情感的中文文本数据,适用于情感分析任务。开放中文词库OpenCC:提供包括简体中文、繁体中文和粤语在内的多种语言版本的中文分词和转换词库。以上仅是一部分常用的公开中文语料库,还有其他一些数据集如人民日报、新华社、搜狗实验室等也值得关注。中文Gigaword数据集:包含新闻、杂志和网页等语料,适用于自然语言处理任务。THUCTC中文文本分类数据集:包含20个分类别的中文文本,适用于文本分类任务。中文维基百科:包含大量的中文文章,非常全面和丰富。原创 2023-05-17 14:27:46 · 1657 阅读 · 0 评论 -
LSA 算法中,如何根据奇异分解矩阵U和S计算文档的潜在语义向量的?
在LSA算法中,可以使用奇异值分解(Singular Value Decomposition,简称SVD)将文档-词项矩阵分解为三个矩阵的乘积,即。在LSA算法中,通过对SVD分解结果中的矩阵U进行截断,只保留其中的前k个主题向量,则可以得到一个新的文档-主题矩阵。,其中U是m×r的文档-主题矩阵,S是r×r的奇异矩阵,而V是n×r的词项-主题矩阵。文档的潜在语义向量在这个新的文档-主题矩阵中的表示,即为其在这个矩阵的第i行,因此,可以通过构建SVD分解矩阵U和文档-词项矩阵D,计算文档潜在语义向量。原创 2023-05-17 14:19:36 · 349 阅读 · 0 评论 -
一分钟理解 AP(Affinity Propagation) 亲和⼒传播算法
这篇博客发出来后,我用 Rust 复现代码出现问题。为此,我对对照了 sklearn 的相关代码,反复比较了两天,发现一处 bug,把 += 误写成了 =,导致数据量大的时候完全无法聚类。这个debug过程让我仔细梳理的 AP 算法的计算过程,今天我对这篇博客做了大规模修改,以便能原样展现原论文思想。原创 2023-03-14 15:40:45 · 1960 阅读 · 3 评论 -
词向量语义匹配:欧氏距离和余弦相似度,选择哪一个?
最近做自然语言处理算法,需要根据词向量判断两个词汇的相似度。面临两个选择:欧氏距离和余弦相似度。选择哪一个好呢?原创 2023-03-08 11:41:42 · 1445 阅读 · 0 评论 -
阅读笔记:TF - IDF 原理
今天查阅 TF-IDF 资料,发现百度百科里面提供了一个例子,解释的很清楚,记下来备用。原创 2023-03-04 17:32:36 · 726 阅读 · 0 评论 -
我发现 chatGPT 在智能客服方面一个逆天的应用呀
chatGPT 有助于快速构建知识库,想了一个有趣的例子,感觉 chatGPT真是强大呀!原创 2023-02-02 11:37:27 · 861 阅读 · 0 评论 -
ChatGPT 逆天测试,结局出乎预料
问几个逆天的问题,看看能否把 ChatGPT 逼疯。结果出乎预料,震惊呀!原创 2023-01-31 12:40:12 · 7861 阅读 · 0 评论 -
准确率(Accuracy)、精度(Precision)、召回率(Recall)和 mAP 的图解
机器学习的评价指标让人眼花缭乱。今天修改一份标准文件,发现算法测试指标定义有些不妥。反复思考后,感觉有必要再次梳理一下对这些概念的认识。原创 2022-07-30 12:16:26 · 6888 阅读 · 0 评论 -
Cifar-10 数据格式分析
Cifar-10 的介绍可去官网阅读,也可参照我之前整理的《笔记:CIFAR-01 和 CIFAR-100 数据集内容和格式详解》1. 下载 Cifar-10 数据本文下载了 Cifar-10 的 Python 语言版本,解压后放在文件夹:...\cifar-10-python\cifar-10-batches-py 中。其中包含如下文件:2. 读取 Cifar-10 数据按照官网说明,这些数据可以用如下 Python 代码读取:def unpickle(file): import pi原创 2022-05-31 08:54:08 · 1322 阅读 · 1 评论 -
人工智能本质上就是数学最优化方法吗?
最近,发现经常有客户对我们的产品提出质疑,你们所谓的AI,不就是数学最优化方法吗,我们怎么没看到智能呢?AlphaGo也好,人脸识别也好,人们发现在当今比较火的人工智能技术背后都有一个重要角色——神经网络。仔细研究神经网络,发现,神经网络原来是借助数学最优化方法生成的。于是,很多人不约而同的出一个结论,人工智能本质上就是数学最优化方法。果真如此吗?原创 2021-06-16 14:42:51 · 956 阅读 · 0 评论 -
用最浅显的方法,讲明白光流法原理
光流法用来分析视频中每个像素的运动方向和速度大小。该方法基于一个关键性的假设——像素在运动过程中,其亮度 III 恒定不变。1. 一维数轴上移动的像素我们考虑一个最简单的情况,一维的图像,像素分布在数轴上。因此,图像像素的亮度 III 可以用其横坐标 xxx 来描述:I=I(x)(1)\tag1I = I(x)I=I(x)(1)考虑到视频图像随时间 ttt 会发生变化,因此,视频图像的亮度可用下面的函数来描述:I=I(x,t)(2)\tag2I=I(x, t)I=I(x,t)(2)假设时原创 2021-06-02 18:11:16 · 493 阅读 · 0 评论 -
gst-inspect-1.0 命令详解
这是 `gst-inspect-1.0` 工具的Linux手册页。因此,在路径规范和插件名称方面,它非常以Linux为中心。请耐心等待,因为它是重写为更一般。1. 名称gst-inspect-1.0 打印有关GStreame r插件或元素的信息2. 命令格式gst-inspect-1.0 [OPTION…] [PLUGIN|ELEMENT]3. 说明gst-inspect-1.0是一个工具,它可以打印出可用 GStreamer 插件的信息、特定插件的信息或特定元素的信息。当在没有PLUGIN原创 2021-04-16 11:26:53 · 4616 阅读 · 0 评论 -
终于解决:CUDA: OpenCV requires enabled ‘cudev‘ module from ‘opencv_contrib‘
用 cmake-gui 配置 WITH_CUDA 时出现这个错误提示。CMake Error at modules/core/CMakeLists.txt:40 (message): CUDA: OpenCV requires enabled 'cudev' module from 'opencv_contrib' repository: https://github.com/opencv/opencv_contrib按照错误提示解决方案提供的网址:https://github.com/ope原创 2021-01-27 12:35:09 · 9642 阅读 · 2 评论 -
word2vec 的本质
午夜昏睡的时候,忽然想到 word2vec 的本质,其实很简单。理解了其本质,可以组合出各种具体的方案出来。原创 2021-01-23 09:00:11 · 172 阅读 · 0 评论