- 博客(76)
- 资源 (11)
- 收藏
- 关注
原创 win:Ollama安装和大模型的集成
Ollama 是一个用于在本地运行大型语言模型 (LLM) 的开源框架。它支持多种平台,包括 Windows、Linux 和 macOS。Ollama 的主要功能包括:将 LLM 模型转换为可执行文件提供简单的命令行界面来运行 LLM 模型支持多种 LLM 模型,包括 LaMDA、Bloom 和 Megatron-Turing NLGOllama 的优势包括:易于使用:Ollama 提供简单的命令行界面,即使是没有经验的用户也可以轻松使用。
2024-04-09 21:42:11
2529
1
原创 OpenAI API key获取
CloseAI网站直达CloseAI是一家企业级的OpenAI服务代理商,主要面向被OpenAI限制地区的企业用户提供API代理服务。可以提供远超OpenAI账号限额的大规模并发调用,广泛被用于AI产品开发、数据处理、科学研究等领域。我一般是随时用随时充值,按需充值,到账很快,几乎不需要等待。而且除了支持支持gpt-3.5-turbo,还支持gpt-4、claude-3、DALL·E 3、whisper-1、tts-1等模型API的调用。
2024-04-09 20:58:18
2579
2
原创 报错:AttributeError: ‘str‘ object has no attribute ‘decode‘
在安装tensorflow时,默认安装h5py为3.1.0,而报错是因为你安装的TF不支持过高版本的h5py。
2024-01-28 13:29:42
974
1
原创 Python:isalpha() 和 isalnum() 区别
只有当字符串中包含字母和数字字符时才会返回 True,否则返回 False。(包括字母和其他语言的字符),而不包括数字或其他特殊字符。:isalpha() 方法不接受任何参数。:isalnum() 方法不接受任何参数。isalpha() 只能判断字符串是否。isalnum() 则可以判断字符串。
2024-01-06 22:58:09
1220
原创 Python:find() 和index() 的区别
在 Python 中,(list)类型对象中的 index() 方法用于返回指定元素在列表中第一次出现的索引位置。
2024-01-06 17:49:58
3583
1
原创 Python:int(value, base=10)
需要注意的是,当我们将一个字符串以特定的进制转换为整数时,字符串中的字符必须合法,并且符合对应进制的表示规则。否则会引发 ValueError 异常。int(value, base=2) 是 Python 中的一个内置函数,用于将。以指定的进制转换为整数。
2024-01-05 17:45:33
487
原创 Python:Sorted()函数的key参数使用
升序排序是通过 key 参数指定了按照 Person 对象的 age 属性进行排序,而降序排序是通过 key 参数指定了按照 Person 对象的 name 属性的第一个字母的 ASCII 值进行排序。接下来,我们定义了一个自定义函数 sort_by_score,该函数的输入参数是一个学生信息,我们将该学生信息的成绩作为排序的关键字。通过将 sort_by_score 函数赋值给 sorted() 函数中的 key 参数,我们就实现了对学生列表按照学生成绩进行降序排序的目的。
2024-01-05 17:10:50
2462
原创 Python:正则表达式---贪婪匹配
John 使用了非贪婪匹配,它只匹配到第一个满足条件的 “John” 前面的最小字符串 “my name is John”。通过使用非贪婪匹配,我们可以控制正则表达式尽可能少地匹配字符,从而得到更精确的结果。.* 表示匹配任意数量的任意字符(除换行符外)。贪婪匹配会将尽可能多的字符都作为匹配结果返回。表示非贪婪的匹配任意数量的任意字符。非贪婪匹配会尽可能少地匹配字符以满足匹配规则。如果我们想要匹配 “my” 后面的最小字符串,即。的,它会尽可能多地匹配满足条件的字符。,我们可以使用非贪婪匹配的符号。
2023-12-21 10:11:45
1168
原创 Python面经【12】
两者用法相同,不同的是range返回的结果是一个列表,而xrange的结果是一个生成器,前者是直接开辟一块内存空间来保存列表,后者是边循环边使用,只有使用时才会开辟内存空间,所以当列表很长时,使用xrange性能要比range好。当类是新式类时(python3版本中的所有类和python2中主动继承object的类),多继承情况下,在要查找属性不存在时,会按照广度优先方式查找。在python中,unittest是python中的单元测试框架。在子类继承多个父类时,属性查找方式分深度优先和广度优先两种。
2023-12-21 09:51:48
462
原创 数据结构【3】:数组 VS 列表
是Python中基础的数据类型,不用引入任何库包,直接使用**方括号[ ]**创建即可(例如:a=[‘优快云’,‘123’]);数组的建立需要先导入库numpy,其中最简单的建立方式就是利用numpy库中的array函数。
2023-12-20 10:16:14
654
原创 数据结构【2】:列表专题
在Python中,列表是一种有序、可变、允许重复元素的数据结构。它是由一组元素组成的,这些元素可以是不同数据类型的对象,包括数字、字符串、布尔值、其他列表,甚至是自定义对象。列表是用方括号[]括起来的,元素之间用逗号分隔。
2023-12-19 19:00:09
473
转载 使用TensorRT对Yolov6进行部署
之前介绍过ONNX,ONNX是一种针对机器学习所设计的开放式的文件格式,用于存储训练好的模型。可以使得在Pytorch、Tensorflow或其他框架下训练好的模型采用相同的格式来存储模型数据并进行交互。
2023-12-19 17:02:02
181
原创 TensorRT 深入介绍
在上一篇文章中,笔者对TensorRT做了简单的介绍,相信读者朋友们看了之后对TensorRT已经有了一个初步的认识。今天笔者就在这里对TensorRT做一个更加详细的剖析,让大家有个更加深入的了解,去看TensorRT到底做了什么优化,以及到底要怎么使用它。这样我们才能做到除了知其然,还做到了知其所以然。
2023-12-19 15:41:02
1064
原创 TensorRT 简单介绍
对于算法工程师来说,相信大家已经对TensorRT耳熟能详了,那么这个TensorRT是什么呢?其实,TensorRT是一个可以在NVIDIA各种GPU硬件平台下运行的,同时也是一个高性能的,可以为深度学习的落地应用起到的作用。TensorRT是由C++、CUDA、Python三种语言编写成的一个库,其中核心代码的语言为C++和CUDA,当然,它也有Python的API接口。
2023-12-19 15:01:49
711
转载 模型部署之模型转换
很多时候,用户的一段代码可能涉及非框架底层的计算,例如下面这段代码,涉及外部库的计算,训练框架自身是无法追踪记录到的。这个时候我们可以把这部分代码作为一个自定义算子,由用户定义这个算子在计算图中作为一个节点所记录的信息。实际实现时,这些计算会被写到一个 Function 或者 Module 中,然后用户在 Function 或者 Module 中定义这个计算对应的计算节点的信息表达,这样每次调用这个定义好的 Function 或者 Module,就能对应在计算图中记录相应的算子信息。
2023-12-18 20:38:48
121
转载 模型部署概述
模型训练重点关注的是如何通过训练策略来得到一个性能更好的模型,其过程似乎包含着各种“玄学”,被戏称为“炼丹”。整个流程包含从训练样本的获取(包括数据采集与标注),模型结构的确定,损失函数和评价指标的确定,到模型参数的训练,这部分更多是业务方去承接相关工作。一旦“炼丹”完成(即训练得到了一个指标不错的模型),如何将这颗“丹药”赋能到实际业务中,充分发挥其能力,这就是部署方需要承接的工作。
2023-12-18 20:38:39
128
原创 使用TensorRT对Yolov5进行部署【基于Python】
model:就是需要转为ONNX的pth模型,只有源模型的结构和权重,才能转化为有效的ONNX模型。:如果启用了动态模式(dynamic=True),则将模型转移到CPU上进行导出;否则使用原始的模型。: 如果启用了动态模式,将输入张量转移到CPU上进行导出;否则使用原始的输入张量。为什么要把模型和输入数据转移到CPU上?CPU 是所有计算环境中最通用和兼容的硬件。当你将一个模型导出为一个通用格式,如 ONNX,目的通常是确保它可以在不同的环境和硬件上运行。
2023-12-18 17:03:38
1328
原创 数据结构【1】:数组专题
数组是编程中一种强大的数据结构,它允许您存储和操作的集合。在 Python 中,数组是通过数组模块创建的,该模块提供了一个简单的接口来创建、操作和处理数组。
2023-12-18 10:09:39
409
原创 List:append 和 extend 区别联系
append 方法用于向列表末尾添加一个元素或一个列表(作为一个单一元素extend 方法用于将一个可迭代对象中的所有元素逐个添加到列表末尾。
2023-12-17 17:35:49
157
原创 TensortRT:sample.py:DeprecationWarning:
解决方案:使用 config.set_memory_pool_limit(trt.MemoryPoolType.WORKSPACE, common.GiB(1)) 来替代被弃用的 config.max_workspace_size。解决方案:使用 network.add_pooling_nd(…解决方案:使用 conv1.stride_nd = (1, 1) 来替代 conv1.stride。警告信息:与 conv1.stride = (1, 1) 相同,同样需要使用 stride_nd。
2023-12-15 23:23:39
597
原创 CUDA lazy loading is not enabled. Enabling it can significantly reduce device memory usage and speed
延迟加载:延迟内核从主机加载到GPU,直到内核被调用。这也只加载已使用的内核,这可能会显著节省设备端内存。这也将加载延迟从应用程序的开始推迟到第一次调用内核的时候——总的二进制加载延迟通常会显著减少,但也会转移到应用程序的后期。CUDA 11.7带来了对新的NVIDIA Open GPU内核模块的兼容性支持,另外一个重要的亮点是。NVIDIA Linux驱动测试版和NVIDIA GPU内核驱动开源版一起发布的是CUDA 11.7。注意,这个特性只兼容CUDA版本>= 11.7编译的库。
2023-12-15 23:10:57
3805
2
原创 Win11下TensorRT环境部署
cuda和cudnn网上有很多安装教程,这里列举了一些,就不详细说了,具体链接如下:youkuaiyun.com - CUDA安装教程(超详细) 原创zhihu.com - 深度学习之CUDA+CUDNN详细安装教程tencent.com - CUDA安装教程(超详细)youkuaiyun.com - CUDA与cuDNN安装教程(超详细) 原创juejin.cn - cuda和cudnn安装教程tencent.com - Cuda和cuDNN安装教程(超级详细)我们可以根据个人的cuda版本去安装TensorRT版本。
2023-12-15 23:03:41
1257
原创 Python:pipdeptree 语法介绍
是一个 Python 包,用于查看已安装的 pip 包及其依赖关系。它以树形结构展示包之间的依赖关系,帮助开发者理解和管理项目的依赖。
2023-12-14 22:34:12
1670
原创 error occurred during configuration: option format: invalid choice: ‘columnsno-cache-dir = true‘
执行。
2023-12-14 16:58:09
231
原创 经典深度学习算法【1】:K-近邻算法(KNN)概述
KNN是通过测量不同特征值之间的距离进行分类。它的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别,其中K通常是不大于20的整数。最简单最初级的分类器是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类。但是怎么可能所有测试对象都会找到与之完全匹配的训练对象呢,其次就是存在一个测试对象同时与多个训练对象匹配,导致一个训练对象被分到了多个类的问题,基于这些问题呢,就产生了KNN。
2023-12-14 14:24:14
169
原创 Python面经【11】- Python可迭代对象一网打尽专题
装饰器本质上是还是一个函数,它可以让已有函数不做任何改动的情况下增加功能。装饰器允许通过将现有函数传递给装饰器,从而向现有函数添加一些额外的功能,该装饰器将执行现有函数的功能和添加的额外功能。能把被装饰的函数替换成其他函数装饰器在加载模块时立即执行2.4. def inner(*args, **kwargs): # 这里的*args和**kwargs用来接收被装饰的函数的参数5. """函数注释:用来修饰被装饰函数的内嵌函数"""
2023-12-14 14:08:41
311
原创 NCNN 源码学习【三】:数据处理
从这个可以看出来,获取ncnn::Mat的三个通道的数据,是要用channel索引出来的,这里就是一个需要留意的点,ncnn::Mat的数据存储,channel间的需要对齐,不一定是连续的,也就是不要理所当然的用channel(0)的指针,自己加加加想去访问其他channel的数据,很容易翻车(我就因为这个翻车过),这个我们后面有时间可以好好写一写ncnn的数据排布。这个计算的细节还是很多的,大家感兴趣的可以去仔细研究一下,这里就不细写了,ncnn的代码为例效率,可能写的不是特别美观。
2023-12-13 16:27:32
907
原创 Python面经【10】- Python内存管理机制专题
计数器反应的是该对象被引用的次数,一旦这个计数器为0,代表没有变量引用该对象,该对象的内存空间就会自动回收。因为垃圾回收机制每次回收内存,都需要将所有的对象引用计数都遍历一遍,这是非常耗时的,所以在历经多次扫描的情况下,都没有被回收的变量,垃圾回收机制就会将他们按等级划分,垃圾回收机制就会认为该变量是常用的变量,对其的扫描频率就会降低。如果两个对象的引用计数都为 1,但是仅仅存在他们之间的循环引用,那么这两个对象都是需要被回收的,也就是说,它们的引用计数虽然表现为非 0,但实际上有效的引用计数为 0。
2023-12-13 10:27:26
192
原创 NCNN 源码学习【二】:模型加载
Input: 层的类型,这里表示它是一个输入层。data: 层的名称,这里将该层命名为data。0: 输出数量,输入层不产生输出,所以是0。1: 输入数量,这是一个常规的输入层,因此只有一个输入(即图像本身)。data: 输入blob的名称。3227227: 输入数据的维度。这里指的是输入图像有3个通道(彩色图像),宽和高分别为227像素。: 层的类型,表示这是一个卷积层。conv1: 层的名称。1: 输出数量,这层有一个输出。1: 输入数量,这层有一个输入。data。
2023-12-12 22:31:32
652
原创 NCNN 源码学习【一】:学习顺序
最近一段时间一直在做模型部署的工作,主要是利用NCNN部署到安卓端,跟着网上的博客和开源项目,做了很多工作,也学习到很多东西,但是对于NCNN的源码,并没有仔细的研究过,对我来说,仿佛是一个神秘的存在一样,接下来,将会对NCNN的源码进行研究,加深对于NCNN的理解。
2023-12-12 16:15:06
248
原创 解决No version of NDK matched the requested version问题
打开Android Studio的 SDK Manager 或者通过点击Files菜单下Settings 进入 设置页面搜索Android SDK 找到SDK Tools。选择要下载的NDK和CMake, 选中Show PackagesDetails后就能选择自己需要的版本了, 本项目根据报错信息来看需要的是21.0.6113669的NDK。选中之后点击OK进行下载, 下载完成后,点击finish结束。再次运行代码就能解决这个问题了。
2023-12-12 15:11:44
2607
1
原创 Leetcode.75 颜色分类【荷兰国旗问题】
荷兰国旗问题是一个经典的计算机科学问题,它来源于荷兰国旗的颜色分布,荷兰国旗自上而下由红、白、蓝三个水平条组成。在算法领域,这个问题通常用于描述一种分类问题,其中元素只有三种类型(通常用三种颜色来表示),目标是在线性时间内对这些元素进行排序。最著名的解决荷兰国旗问题的算法是由艾兹赫尔·戴克斯特拉提出的三向切分快速排序中的一部分。这个算法将数组分成三个部分:红色的、白色的和蓝色的,使得同颜色的元素聚在一起。
2023-12-12 10:56:14
283
原创 Python面经【9】- Python设计模式专题-下卷
上面的简单工厂我们知道了,如果新增一些类型的时候会违背软件设计中的开闭原则,但是我们希望再扩展新类时,不要修改原来的代码,这个时候我们可以在简单工厂的基础上把SimpleFactory抽象成不同的工厂,每个工厂对应生成自己的产品,这就是工厂方法。(1) 简单工厂:简单工厂并不是一个真正的设计模式,更像是一种编程习惯,它通过一个单独的类来创建实例,这个类通常包含一个静态方法,根据对不同的输入参数返回不同的对象;建造者模式用于将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
2023-12-12 08:50:01
330
原创 cmd.exe /C “cd . && D:\Software\Android\SDK\ndk\21.4.7075529\toolchains\llvm\prebuilt\windows-x86_64
【代码】cmd.exe /C “cd . && D:\Software\Android\SDK\ndk\21.4.7075529\toolchains\llvm\prebuilt\windows-x86_64。
2023-12-11 23:20:21
679
2
原创 使用NCNN在华为M5部署MobileNet-SSD
文件是一个压缩文件,其中包含了 ncnn 框架在 Android 平台上使用 Vulkan 图形库加速的相关文件和代码。在 Android 平台上,ncnn 框架可以利用 Vulkan 的并行计算能力来进行神经网络模型的推理计算,以提升计算性能。ncnn-android-vulkan.zip 文件中包含了使用 ncnn 框架和 Vulkan 图形库进行推理计算所需的相关文件和代码,例如 ncnn 库文件、Vulkan 相关的动态链接库、示例代码等。
2023-12-11 21:50:33
286
原创 使用NCNN在华为M5部署Styletransfer
文件是一个压缩文件,其中包含了 ncnn 框架在 Android 平台上使用 Vulkan 图形库加速的相关文件和代码。在 Android 平台上,ncnn 框架可以利用 Vulkan 的并行计算能力来进行神经网络模型的推理计算,以提升计算性能。ncnn-android-vulkan.zip 文件中包含了使用 ncnn 框架和 Vulkan 图形库进行推理计算所需的相关文件和代码,例如 ncnn 库文件、Vulkan 相关的动态链接库、示例代码等。
2023-12-11 17:50:01
238
原创 NCNN:Cause: executing external native build for cmake
项目根目录下local.properties 文件增加自己的cmake 和 ndk配置;主要应该是cmake配置。
2023-12-11 16:57:28
206
原创 Python 字典:dic = {} 和 dic = defaultdict(list)之间的区别
为 name 创建一个新条目,并初始化一个空列表。这避免了我们需要手动检查 name 是否已经存在于字典中。假设我们有一组数据,包含多个姓名和与每个姓名关联的一些数字。我们的目标是创建一个字典,其中每个姓名都映射到一个包含所有相关数字的列表。在这个例子中,当我们添加一个元组 (name, number) 到 names_dict 时,如果 name 还。为这个键创建一个空列表,然后才能追加 number。使用普通字典时,我们必须首先检查 name 是否已经存在于字典中。字典中,defaultdict 会。
2023-12-10 21:44:56
704
原创 Gitzip插件【Github免翻下载】
填上一些必填的信息,然后点击生成token,就可以了。今天给推荐一个款浏览器插件-Gitzip.大家可以直接在Edge和谷歌浏览器的插件商店下载,Edge可以直接获取下载。但是这两种各有各的弊端,前者一般需要科学上网才可以,后者下载不稳定经常中途断掉。但是谷歌在下载的时候,可以需要科学上网才能进入应用商店,后期使用的时候就不用了。但是这个时候,还不能用,需要配置token.,就像我现在一样,这个时候,我们可以下载单个文件夹,也可以下载整个项目工程,因为我这里,已经申请过了,所以显示的是重新生成,
2023-12-10 16:22:02
1773
3
最详细的伪分布模式Hadoop安装记录.pdf
2020-05-21
为极致体验而变-IT管理软件的革新.pdf
2020-05-21
业界主流集装箱数据中心对比分析.pdf
2020-05-21
软件定义和硬件重构分析.pdf
2020-05-21
服务器虚拟化三剑客技术详解.pdf
2020-05-21
鸟哥的Linux私房菜基础学习篇(第三版)
2018-09-03
三层交换机设置(CiscoTP)
2018-09-02
交换机快速生成树配置
2018-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人