-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
299 lines (261 loc) · 39.6 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>Min的博客 - 欢~迎光临~</title><meta name="author" content="Min,[email protected]"><meta name="copyright" content="Min"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta name="description" content="GEEK对黑科技飢渴,NJUSTer,毕业于绵阳中学Szechuanese在江苏Python|C++|VueField:ML|DL|3d-CVPassion for Science,Engineering & Programming.">
<meta property="og:type" content="website">
<meta property="og:title" content="Min的博客">
<meta property="og:url" content="https://xxminxx.love/index.html">
<meta property="og:site_name" content="Min的博客">
<meta property="og:description" content="GEEK对黑科技飢渴,NJUSTer,毕业于绵阳中学Szechuanese在江苏Python|C++|VueField:ML|DL|3d-CVPassion for Science,Engineering & Programming.">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://s2.loli.net/2023/10/06/o6NdqIS2WFGpK7U.jpg">
<meta property="article:author" content="Min">
<meta property="article:tag" content="Min's blog.">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://s2.loli.net/2023/10/06/o6NdqIS2WFGpK7U.jpg"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="https://xxminxx.love/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.min.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: undefined,
translate: undefined,
noticeOutdate: undefined,
highlight: {"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
copy: {
success: '复制成功',
error: '复制错误',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: false,
post: false
},
runtime: '天',
dateSuffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: {"limitCount":100,"languages":{"author":"作者: Min","link":"链接: ","source":"来源: Min的博客","info":"著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。"}},
lightbox: 'fancybox',
Snackbar: undefined,
infinitegrid: {
js: 'https://cdn.jsdelivr.net/npm/@egjs/infinitegrid/dist/infinitegrid.min.js',
buttonText: '加载更多'
},
isPhotoFigcaption: false,
islazyload: false,
isAnchor: false,
percent: {
toc: true,
rightside: false,
},
autoDarkmode: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: 'Min的博客',
isPost: false,
isHome: true,
isHighlightShrink: false,
isToc: false,
postUpdate: '2024-07-12 23:32:53'
}</script><script>(win=>{
win.saveToLocal = {
set: (key, value, ttl) => {
if (ttl === 0) return
const now = Date.now()
const expiry = now + ttl * 86400000
const item = {
value,
expiry
}
localStorage.setItem(key, JSON.stringify(item))
},
get: key => {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = Date.now()
if (now > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = (url, attr = {}) => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
Object.keys(attr).forEach(key => {
script.setAttribute(key, attr[key])
})
document.head.appendChild(script)
})
win.getCSS = (url, id = false) => new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) link.id = id
link.onerror = reject
link.onload = link.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
link.onload = link.onreadystatechange = null
resolve()
}
document.head.appendChild(link)
})
win.activateDarkMode = () => {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
win.activateLightMode = () => {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
const t = saveToLocal.get('theme')
if (t === 'dark') activateDarkMode()
else if (t === 'light') activateLightMode()
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
})(window)</script><meta name="generator" content="Hexo 6.3.0"></head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="https://s2.loli.net/2023/10/06/o6NdqIS2WFGpK7U.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">49</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">28</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">18</div></a></div><hr class="custom-hr"/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 时光轴</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 推荐</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/book/"><i class="fa-fw fas fa-book"></i><span> 书籍</span></a></li><li><a class="site-page child" href="/link/"><i class="fa-fw fas fa-link"></i><span> 链接</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url('https://s2.loli.net/2023/10/06/5EbUf3XWGkMjTK9.jpg')"><nav id="nav"><span id="blog-info"><a href="/" title="Min的博客"><span class="site-name">Min的博客</span></a></span><div id="menus"><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> 时光轴</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> 标签</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> 分类</span></a></div><div class="menus_item"><a class="site-page group" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 推荐</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/book/"><i class="fa-fw fas fa-book"></i><span> 书籍</span></a></li><li><a class="site-page child" href="/link/"><i class="fa-fw fas fa-link"></i><span> 链接</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> 关于</span></a></div></div><div id="toggle-menu"><a class="site-page" href="javascript:void(0);"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">Min的博客</h1></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/07/12/joblib-VS-pickle/" title="joblib VS pickle">joblib VS pickle</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-12T15:31:59.000Z" title="发表于 2024-07-12 23:31:59">2024-07-12</time></span></div><div class="content">joblib 和 pickle 都是 Python 的库,用于实现对象的序列化和反序列化,实现数据持久化。
pickle 是 Python 的标准库的一部分,它可以将 Python 对象转换为字节流,从而实现对象的序列化。pickle 支持 Python 的所有数据类型,包括列表、字典、类实例等。然而,pickle 序列化的结果难以阅读,且跨语言兼容性较差。
joblib 则是 scikit-learn 库的一个扩展库,它专门用于快速持久化 scikit-learn 模型。joblib 类似于 pickle,但是 joblib 具有更快的加载速度和更小的文件大小。此外,joblib 还支持并行计算,这在训练和预测大型模型时非常有用。
优点:
joblib:更快加载速度,更小的文件大小,支持并行计算。
pickle:标准库,支持所有 Python 数据类型,易于使用。
缺点:
joblib:仅适用于 scikit-learn 模型。
pickle:序列化结果难以阅读,跨语言兼容性较差。
一言以蔽之:scikit-learn模型用joblib,python原生类型用pickle
</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/07/12/pcap-%E5%AE%9E%E6%88%98%EF%BC%88%E4%B8%89%EF%BC%89/" title="pcap++实战(三)">pcap++实战(三)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-12T15:30:49.000Z" title="发表于 2024-07-12 23:30:49">2024-07-12</time></span></div><div class="content">pcap++实战(三)TLS指纹、SSL分析、 HttpAnalyzer、 DNS解析、PCAP解析、PCAP分割与搜索
这一章主要介绍 pcap++的应用,即示例程序
pcap应用这些应用以bin存在,但源码位于github,可用于学习和借鉴
ArpSpoofing ARP欺骗这是一个应用程序,使用packet++和Pcap++进行ARP欺骗。你可以在这里阅读更多关于ARP欺骗的内容。
arp使用PcapPlusPlus的路由实用程序的实现。
DnsSpoofing DNS欺骗一个命令行实用程序,使用packe++和Pcap++进行DNS欺骗。
DNSResolver DNS解析一个命令行实用程序,使用ARP和DNS协议解析主机名的IPv4地址。工作原理是发送DNS请求并分析DNS回复来解析IPV4地址的主机名
1234567891011Basic usage: DNSResolver [-hl] [-t timeout] [-d dns_server] [-g gateway] [-i interface] -s hostnameOptions: -h ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/07/12/pcap-%E5%AE%9E%E6%88%98%EF%BC%88%E4%BA%8C%EF%BC%89/" title="pcap++实战(二)">pcap++实战(二)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-12T15:30:09.000Z" title="发表于 2024-07-12 23:30:09">2024-07-12</time></span></div><div class="content">pcap++实战(二)tutorials:这一部分主要介绍pcapplusplus库的基本概念,我们会利用这个库实际写一些代码
库的组成PcapPlusPlus由3个库组成:common++, packet++和pcap++,让我们来讲解一下每一个库的目的和它的主要类:
common++一个库,用于解析、创建和编辑各种支持协议的数据包。这个库可以独立使用,不依赖于Pcap++, libpcap/WinPcap/Npcap等。主要类和实用程序:
RawPacket - 原始包
Layer - 所有协议层的基类。每个协议层负责解析数据包中属于该协议的特定字节
Packet -表示由不同的PcapPlusPlus协议解析器解析,包含不同协议层
Protocol layers (for example: EthLayer, IPv4Layer, IPv6Layer, TcpLayer, UdpLayer, DnsLayer, HttpRequestLayer, HttpResponseLayer, PayloadLayer, etc.) - 代表特定协议解析器的类 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/07/12/pcap-%E5%AE%9E%E6%88%98%EF%BC%88%E4%B8%80%EF%BC%89/" title="pcap++实战(一)">pcap++实战(一)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-12T15:29:34.000Z" title="发表于 2024-07-12 23:29:34">2024-07-12</time></span></div><div class="content">pcap++实战安装:下载releaseprebuilt-ubuntu文件压缩包解压,其目录为├── bin├── example-app├── include├── lib├── LICENSE└── README.release.md并软链接,我的path是~/program/pcapplusplus-23.09-ubuntu-20.04-gcc-9.4.0-x86_64
12sudo ln -s bin/ /usr/local/binsudo ln -s include/pcapplusplus/ /usr/local/include/
跑demohttps://pcapplusplus.github.io/docs/quickstart
1sudo apt-get install libpcap-dev
出现错误:
错误:1http://cn.archive.ubuntu.com/ubuntufocal InRelease暂时不能解析域名“cn.archive.ubuntu.com” 错误:2http://security.ubuntu.com/ubunt ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/07/12/ONNX%E5%92%8C%E6%A8%A1%E5%9E%8B%E8%BD%AC%E6%8D%A2/" title="ONNX和模型转换">ONNX和模型转换</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-12T15:28:43.000Z" title="发表于 2024-07-12 23:28:43">2024-07-12</time></span></div><div class="content">ONNXONNX Runtime | onnxruntimesklearn-onnxsklearn-onnx只支持scikit-learn的模型转换.而 onnxmltools可用于 libsvm, lightgbm, _xgboost_的模型转换.
其它的ONNX模型转换工具:github/onnx, torch.onnx, ONNX-MXNet API, Microsoft.ML.Onnx…
支持的模型Supported scikit-learn Models - sklearn-onnx 1.18.0 documentation
安装1mamba install skl2onnx onnxruntime
入门123456789101112# 训练模型import numpy as npfrom sklearn.datasets import load_irisfrom sklearn.model_selection import train_test_splitfrom sklearn.ensemble import RandomForestClassifierir ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/07/12/dvc/" title="dvc">dvc</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-12T15:27:46.000Z" title="发表于 2024-07-12 23:27:46">2024-07-12</time></span></div><div class="content">dvc:data version controlCML · Continuous Machine Learning
什么是DVC?DVC是一种利用现有软件工程工具集的数据科学工具。它帮助机器学习团队管理大型数据集,使项目具有可复制性,并更好地进行协作。
选型比较:DVC vs概念模型注册模型注册/登记是记录并索引所有ML模型和版本的工具。通过模型注册,来自ML项目的模型可以被发现、测试、分享和审查。DVC studio的模型注册建立在git的基础上,因此不会割裂。
数据注册实验跟踪DVC如何安装?1pip install dvc
使用vscode可以装插件
DVC如何使用?教程是data+code跟踪,所以比较复杂
DVC创建项目123git initdvc init #必须在git init之后git commit -m "Initialize DVC" #无须add,自动添加暂存区
主要是这三个文件new file: .dvc/.gitignorenew file: .dvc/confignew file: .dvcig ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/07/12/MLOps/" title="MLOps">MLOps</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-12T15:26:16.000Z" title="发表于 2024-07-12 23:26:16">2024-07-12</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/MLops/">MLops</a></span></div><div class="content">mlops-roadmap/MLOpsRoadmap2020.md at master · tdcox/mlops-roadmap (github.com)
什么是MLOps?MLOps可以狭义地定义为“将DevOps原则应用于机器学习应用程序的能力”,但正如我们稍后将看到的,这种狭义的定义错过了MLOps对客户的真正价值。相反,我们将MLOps定义为“DevOps方法论的扩展,将机器学习资产(和数据科学资产)作为DevOps生态中的一等公民”。
MLOps应被视为一种持续管理产品ML方面的实践,其方式与成功将这些产品商业化所需的所有其他技术和非技术元素相统一,并在市场上具有最大的生存潜力。
什么不是MLOps?(对于MLOps的错误认识和定义外延)MLOps不是“将Jupyter notebook投入生产环境”。像Jupyter Notebooks这样的RAD工具牺牲了可维护性、可测试性和 scalability,以实现快速方法探索和教学很大一部分ML从业者从未接触过过去70年在商业环境中管理软件资产的经验教训。
数据科学家创建的训练好的ML模型只是可行性的概念证 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/07/12/%E7%89%B9%E5%BE%81%E5%AD%98%E5%82%A8/" title="特征存储">特征存储</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-12T15:25:59.000Z" title="发表于 2024-07-12 23:25:59">2024-07-12</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/MLops/">MLops</a></span></div><div class="content">DuckDB在关系型数据库中,INSERT语句是将数据加载到数据库的常用方法。使用INSERT语句时,数据是按行逐个插入的。虽然这种方式直观易懂,但在解析和处理每一个单独的INSERT语句时会涉及到较大的开销。这导致当进行大量数据的批量插入时,逐行插入变得非常低效。
最佳实践避免频繁的逐行插入:作为一般规则,当插入多于几行的数据时,应避免使用大量的逐行INSERT语句(即不要在循环中使用INSERT语句)。在进行大批量数据插入时,应尽量增加每次语句插入的数据量。避免自动提交模式:如果你必须在循环中使用INSERT语句来加载数据,请避免在自动提交模式下执行这些语句。在自动提交模式下,每个单独的语句都会被包裹在一个独立的事务中,意味着每次提交后数据库都需要将更改同步到磁盘以确保数据不丢失。在批量加载数据时,这种同步通常是不必要的,并且会显著减慢程序的速度。小贴士使用事务来包裹循环中的INSERT语句:如果你必须在循环中使用INSERT语句加载数据,可以将这些语句包裹在BEGIN TRANSACTION和COMMIT语句之间,这样可以将多次插入操作合并到一个事务中,减少磁盘同步的频率,从而提 ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/07/12/Clickhouse%E4%BD%BF%E7%94%A8%E5%92%8C%E5%AD%A6%E4%B9%A0/" title="Clickhouse使用和学习">Clickhouse使用和学习</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-07-12T11:42:25.000Z" title="发表于 2024-07-12 19:42:25">2024-07-12</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/MLops/">MLops</a></span></div><div class="content">Clickhouse
Clickhouse阿里云、思科、滴滴、IBM、LangChain、索尼、Cloudflare、eBay、DeepL、百度都用它
Clickhouse 有中文文档,但是不全;读完全部的Docs和SQL Reference基本上用起来没有任何问题了,而且它还有自带的AI
Clickhouse存储数据所支持的数据类型
Integer types: signed and unsigned integers (UInt8, UInt16, UInt32, UInt64, UInt128, UInt256, Int8, Int16, Int32, Int64, Int128, Int256)
Floating-point numbers: floats(Float32 and Float64) and Decimal values
Boolean: ClickHouse has a Boolean type
Strings: String and FixedString
Dates: use Date and Date32 for days, and DateTime an ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2024/05/12/miniforge/" title="miniforge">miniforge</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time datetime="2024-05-12T01:35:08.000Z" title="发表于 2024-05-12 09:35:08">2024-05-12</time></span></div><div class="content">什么是Mambaforge?和miniforge和mamba的关系Mambaforge使用mamba作为其包管理器,mamba是conda的一个替代品,可以从conda-forge通道安装包。
Miniforge是一个社区驱动的miniconda替代品,它与Miniconda相比,提供了更多的编译器和开发工具,适用于更复杂的环境和依赖关系。自2023年9月起,Miniforge的功能与Mambaforge完全一致,两者的主要区别在于安装器名称和默认安装路径。
Mamba是一个高效的包管理工具,它通过C++实现核心部分,以提高执行效率,并且可以与conda完美兼容,只需将conda命令中的conda替换为mamba即可。Mambaforge预配置了流行的conda-forge通道,但用户也可以修改配置以使用其他任何通道。
总结来说,Mambaforge是一个基于mamba的环境管理工具,而Miniforge则是一个提供额外编译器和开发工具的环境管理工具,两者在功能上已经非常接近,主要差异在于安装过程中的细节。
miniforge, I’m comingconda-forge/m ...</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#content-inner">2</a><span class="space">…</span><a class="page-number" href="/page/5/#content-inner">5</a><a class="extend next" rel="next" href="/page/2/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="https://s2.loli.net/2023/10/06/o6NdqIS2WFGpK7U.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">Min</div><div class="author-info__description">GEEK对黑科技飢渴,NJUSTer,毕业于绵阳中学<br>Szechuanese在江苏<br>Python|C++|Vue<br>Field:ML|DL|3d-CV<br>Passion for Science,Engineering & Programming.</div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">49</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">28</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">18</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/Mr-brillianter"><i class="fab fa-github"></i><span>关注我</span></a></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content">这里是Min的博客,主要为了记录学习历程,分享给朋友们的踩过的坑,给中文互联网贡献更多优质干货。但是由于时间有限,可能只记录了产生坑的位置或者内容不够详细,希望多多海涵。</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>最新文章</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/07/12/joblib-VS-pickle/" title="joblib VS pickle">joblib VS pickle</a><time datetime="2024-07-12T15:31:59.000Z" title="发表于 2024-07-12 23:31:59">2024-07-12</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/07/12/pcap-%E5%AE%9E%E6%88%98%EF%BC%88%E4%B8%89%EF%BC%89/" title="pcap++实战(三)">pcap++实战(三)</a><time datetime="2024-07-12T15:30:49.000Z" title="发表于 2024-07-12 23:30:49">2024-07-12</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/07/12/pcap-%E5%AE%9E%E6%88%98%EF%BC%88%E4%BA%8C%EF%BC%89/" title="pcap++实战(二)">pcap++实战(二)</a><time datetime="2024-07-12T15:30:09.000Z" title="发表于 2024-07-12 23:30:09">2024-07-12</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/07/12/pcap-%E5%AE%9E%E6%88%98%EF%BC%88%E4%B8%80%EF%BC%89/" title="pcap++实战(一)">pcap++实战(一)</a><time datetime="2024-07-12T15:29:34.000Z" title="发表于 2024-07-12 23:29:34">2024-07-12</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2024/07/12/ONNX%E5%92%8C%E6%A8%A1%E5%9E%8B%E8%BD%AC%E6%8D%A2/" title="ONNX和模型转换">ONNX和模型转换</a><time datetime="2024-07-12T15:28:43.000Z" title="发表于 2024-07-12 23:28:43">2024-07-12</time></div></div></div></div><div class="card-widget card-categories"><div class="item-headline">
<i class="fas fa-folder-open"></i>
<span>分类</span>
<a class="card-more-btn" href="/categories/" title="查看更多">
<i class="fas fa-angle-right"></i></a>
</div>
<ul class="card-category-list" id="aside-cat-list">
<li class="card-category-list-item "><a class="card-category-list-link" href="/categories/LLM/"><span class="card-category-list-name">LLM</span><span class="card-category-list-count">2</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/MLops/"><span class="card-category-list-name">MLops</span><span class="card-category-list-count">3</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Python/"><span class="card-category-list-name">Python</span><span class="card-category-list-count">4</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Tools/"><span class="card-category-list-name">Tools</span><span class="card-category-list-count">7</span></a><ul class="card-category-list child"><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Tools/Python/"><span class="card-category-list-name">Python</span><span class="card-category-list-count">1</span></a><ul class="card-category-list child"><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Tools/Python/%E7%88%AC%E8%99%AB/"><span class="card-category-list-name">爬虫</span><span class="card-category-list-count">1</span></a></li></ul></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/Tools/%E7%88%AC%E8%99%AB/"><span class="card-category-list-name">爬虫</span><span class="card-category-list-count">1</span></a></li></ul></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/linux/"><span class="card-category-list-name">linux</span><span class="card-category-list-count">2</span></a></li>
</ul></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>标签</span></div><div class="card-tag-cloud"><a href="/tags/linux/" style="font-size: 1.23em; color: #999ea6">linux</a> <a href="/tags/vim/" style="font-size: 1.1em; color: #999">vim</a> <a href="/tags/LLM/" style="font-size: 1.23em; color: #999ea6">LLM</a> <a href="/tags/ffmpeg/" style="font-size: 1.1em; color: #999">ffmpeg</a> <a href="/tags/%E6%B5%81%E9%87%8F%E5%88%86%E6%9E%90-%E5%B7%A5%E5%85%B7/" style="font-size: 1.1em; color: #999">流量分析 工具</a> <a href="/tags/%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BC%96%E7%A8%8B/" style="font-size: 1.1em; color: #999">函数式编程</a> <a href="/tags/anti-bot-bypassing/" style="font-size: 1.1em; color: #999">anti-bot bypassing</a> <a href="/tags/%E5%B7%A5%E5%85%B7/" style="font-size: 1.23em; color: #999ea6">工具</a> <a href="/tags/%E5%89%8D%E7%AB%AF/" style="font-size: 1.1em; color: #999">前端</a> <a href="/tags/git-%E5%B7%A5%E5%85%B7/" style="font-size: 1.1em; color: #999">git 工具</a> <a href="/tags/%E4%BA%BA%E5%B7%A5%E5%BC%B1%E6%99%BA/" style="font-size: 1.23em; color: #999ea6">人工弱智</a> <a href="/tags/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/" style="font-size: 1.1em; color: #999">深度学习</a> <a href="/tags/XPath/" style="font-size: 1.1em; color: #999">XPath</a> <a href="/tags/python%E8%AF%AD%E6%B3%95/" style="font-size: 1.1em; color: #999">python语法</a> <a href="/tags/Python%E5%BA%94%E7%94%A8/" style="font-size: 1.1em; color: #999">Python应用</a> <a href="/tags/Github-%E5%B7%A5%E5%85%B7/" style="font-size: 1.1em; color: #999">Github 工具</a> <a href="/tags/react-ant%E7%BB%84%E4%BB%B6/" style="font-size: 1.1em; color: #999">react ant组件</a> <a href="/tags/Python/" style="font-size: 1.5em; color: #99a9bf">Python</a> <a href="/tags/Clickhouse/" style="font-size: 1.1em; color: #999">Clickhouse</a> <a href="/tags/Playwright/" style="font-size: 1.1em; color: #999">Playwright</a> <a href="/tags/%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C/" style="font-size: 1.1em; color: #999">神经网络</a> <a href="/tags/Hexo/" style="font-size: 1.1em; color: #999">Hexo</a> <a href="/tags/windows-API/" style="font-size: 1.1em; color: #999">windows API</a> <a href="/tags/geek/" style="font-size: 1.1em; color: #999">geek</a> <a href="/tags/requests/" style="font-size: 1.1em; color: #999">requests</a> <a href="/tags/pytest/" style="font-size: 1.1em; color: #999">pytest</a> <a href="/tags/pcap/" style="font-size: 1.37em; color: #99a4b2">pcap++</a> <a href="/tags/Vue/" style="font-size: 1.1em; color: #999">Vue</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span><a class="card-more-btn" href="/archives/" title="查看更多">
<i class="fas fa-angle-right"></i></a></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/07/"><span class="card-archive-list-date">七月 2024</span><span class="card-archive-list-count">9</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/05/"><span class="card-archive-list-date">五月 2024</span><span class="card-archive-list-count">7</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/04/"><span class="card-archive-list-date">四月 2024</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/03/"><span class="card-archive-list-date">三月 2024</span><span class="card-archive-list-count">7</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/02/"><span class="card-archive-list-date">二月 2024</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/12/"><span class="card-archive-list-date">十二月 2023</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/11/"><span class="card-archive-list-date">十一月 2023</span><span class="card-archive-list-count">10</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2023/10/"><span class="card-archive-list-date">十月 2023</span><span class="card-archive-list-count">12</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">49</div></div><div class="webinfo-item"><div class="item-name">已运行时间 :</div><div class="item-count" id="runtimeshow" data-publishDate="2023-09-30T16:00:00.000Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站总字数 :</div><div class="item-count">55.1k</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2024-07-12T15:32:53.251Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer" style="background-image: url('https://s2.loli.net/2023/10/06/5EbUf3XWGkMjTK9.jpg')"><div id="footer-wrap"><div class="copyright">©2020 - 2024 By Min</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo</a><span class="footer-separator">|</span><span>主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly</a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside-config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox/fancybox.umd.min.js"></script><div class="js-pjax"></div><div class="aplayer no-destroy" data-id="8787507455" data-server="netease" data-type="playlist" data-fixed="true" data-autoplay="true"> </div><canvas class="fireworks" mobile="false"></canvas><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/fireworks.min.js"></script><script id="canvas_nest" defer="defer" color="0,0,255" opacity="0.7" zIndex="-1" count="99" mobile="false" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/canvas-nest.min.js"></script><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/activate-power-mode.min.js"></script><script>POWERMODE.colorful = true;
POWERMODE.shake = false;
POWERMODE.mobile = false;
document.body.addEventListener('input', POWERMODE);
</script><script id="click-heart" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/click-heart.min.js" async="async" mobile="false"></script><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css" media="print" onload="this.media='all'"><script src="https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js"></script><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/metingjs/dist/Meting.min.js"></script><script src="https://cdn.jsdelivr.net/npm/pjax/pjax.min.js"></script><script>let pjaxSelectors = ["head > title","#config-diff","#body-wrap","#rightside-config-hide","#rightside-config-show",".js-pjax"]
var pjax = new Pjax({
elements: 'a:not([target="_blank"])',
selectors: pjaxSelectors,
cacheBust: false,
analytics: false,
scrollRestoration: false
})
document.addEventListener('pjax:send', function () {
// removeEventListener
btf.removeGlobalFnEvent('pjax')
btf.removeGlobalFnEvent('themeChange')
document.getElementById('rightside').classList.remove('rightside-show')
if (window.aplayers) {
for (let i = 0; i < window.aplayers.length; i++) {
if (!window.aplayers[i].options.fixed) {
window.aplayers[i].destroy()
}
}
}
typeof typed === 'object' && typed.destroy()
//reset readmode
const $bodyClassList = document.body.classList
$bodyClassList.contains('read-mode') && $bodyClassList.remove('read-mode')
typeof disqusjs === 'object' && disqusjs.destroy()
})
document.addEventListener('pjax:complete', function () {
window.refreshFn()
document.querySelectorAll('script[data-pjax]').forEach(item => {
const newScript = document.createElement('script')
const content = item.text || item.textContent || item.innerHTML || ""
Array.from(item.attributes).forEach(attr => newScript.setAttribute(attr.name, attr.value))
newScript.appendChild(document.createTextNode(content))
item.parentNode.replaceChild(newScript, item)
})
GLOBAL_CONFIG.islazyload && window.lazyLoadInstance.update()
typeof panguInit === 'function' && panguInit()
// google analytics
typeof gtag === 'function' && gtag('config', '', {'page_path': window.location.pathname});
// baidu analytics
typeof _hmt === 'object' && _hmt.push(['_trackPageview',window.location.pathname]);
typeof loadMeting === 'function' && document.getElementsByClassName('aplayer').length && loadMeting()
// prismjs
typeof Prism === 'object' && Prism.highlightAll()
})
document.addEventListener('pjax:error', e => {
if (e.request.status === 404) {
pjax.loadUrl('/404.html')
}
})</script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div></body></html>