通俗范畴论4 范畴的定义

news2024/10/7 16:20:59

注:由于CSDN无法显示本文章源文件的公式,因此部分下标、字母花体、箭头表示可能会不正常,请读者谅解

范畴的正式定义

上一节我们在没有引入范畴这个数学概念的情况下,直接体验了一个“苹果1”范畴,建立了一个对范畴的直观。本节我们正式学习范畴的定义和基本性质。

一个范畴(Category) C𝐶,由以下部分组成:

  • 数据:

    • 对象(Objects):包含若干个对象(Objects),这些对象的全体构成一个聚集(Collection),这个聚集记为 ob(C)𝑜𝑏(𝐶)

    • 态射(morphisms):对于对象 A,B∈ob(C)𝐴,𝐵∈𝑜𝑏(𝐶),有一个态射构成的聚集 C(A,B)𝐶(𝐴,𝐵) 包含了 从 A𝐴 到 B𝐵 的所有态射 a→b𝑎→𝑏

  • 结构:

    • 恒等态射(identities):对于任何对象 A∈ob(C)𝐴∈𝑜𝑏(𝐶),都有一个恒等态射 A−→−IdAA𝐴→𝐼𝑑𝐴𝐴

    • 复合(composition):对于任何箭头 A→fB→gC𝐴→𝑓𝐵→𝑔𝐶,总有一个复合箭头 A−→−g∘fC𝐴→𝑔∘𝑓𝐶

  • 性质:

    • 单位律(Unit Laws):对于任何态射 A→fB𝐴→𝑓𝐵,总有:f∘IdA=f=IdB∘f𝑓∘𝐼𝑑𝐴=𝑓=𝐼𝑑𝐵∘𝑓

    • 结合律(Associativity):对于任何态射 A→fB→gC→hD𝐴→𝑓𝐵→𝑔𝐶→ℎ𝐷,总有 (h∘g)∘f=h∘(g∘f)(ℎ∘𝑔)∘𝑓=ℎ∘(𝑔∘𝑓)

范畴定义涉及的名字

在不同的书中,范畴定义的形式可能会有所不同,但含义总是一样的。我们先来看名字。

在定义中,给某个范畴取了一个名字 C𝐶,这个符号是花写的大写C,这可能让您不太习惯,但是这样写,从视觉上就和普通的大写区分开来了。在定义里我们看到,对象也是用大写字母,A、B等,因为显示不同,您可以很容易区分,花写的是范畴,非花写的是一个范畴里面的对象。所以,如果你要用大写的C表示一个对象,那么,范畴的名称你可以用一个别的花写大写字母,例如:F𝐹。

然后,我们看态射,态射就是前述的箭头,它的符号表示一般用小写字母,f、g、h 等,这样就不容易和对象混起来,因为对象是大写字母。

对于恒等态射,因为每个对象都有一个唯一的恒等态射,因此我们要标记是哪个对象的恒等态射,因此名字有个下标,例如对于对象 X,则表示为 IdX。

然后是箭头的复合,即连续的箭头,可以组成一个更长的箭头,复合这个操作,我们用 ∘∘ 表示,例如 g∘f𝑔∘𝑓,有时写起来比较麻烦,我们会直接写为 gf。

注意这些名字的取法,对于范畴定义本身是无关紧要的,因此不同书中名字可能不同,显示形式也可能有所差别,但是C无论花不花写,C就是C。当然,一个好的显示形式,可以在阅读的时候方便区分,例如:

A∈D𝐴∈𝐷 就容易混,而 A∈D𝐴∈𝐷,就不容易混,A是对象,D是范畴。

当然如果觉得花写麻烦,只用普通写法也行,在阅读或书写时,自己注意区分不同字母指代的含义就行。

范畴的表示

我们来看一个具体例子,一个范畴 C𝐶,有三个对象:A、B、C,A 态射 B,B 态射 C,C 态射 A。那么我们可以得到范畴的代数表示和有向图表示。

范畴的代数表示

C𝐶 由如下部分构成:

  • 对象:ob(C)𝑜𝑏(𝐶) = {A, B, C}

  • 恒等态射:C(A,A)𝐶(𝐴,𝐴)= {IdA}、C(B,B)𝐶(𝐵,𝐵)= {IdB}、C(C,C)𝐶(𝐶,𝐶)= {IdC}

  • 对象间态射:

    C(A,B)𝐶(𝐴,𝐵)= {f}

    C(B,C)𝐶(𝐵,𝐶)= {g}

    C(C,A)𝐶(𝐶,𝐴)= {h}

    C(A,C)𝐶(𝐴,𝐶)= {g∘f}

    C(B,A)𝐶(𝐵,𝐴)= {h∘g}

    C(C,B)𝐶(𝐶,𝐵)= {f∘h}

范畴的有向图表示

C𝐶 用有向图来进行表示:

Diagram

聚集(Collection)

在上述定义中,ob(C)𝑜𝑏(𝐶) 指一个范畴里面的所有对象构成的一个东西,C(A,B)𝐶(𝐴,𝐵) 指从对象A到对象B的所有态射构成的一个东西,也就是所有箭头构成的一个东西。我们只是给它们取了一个名字而已。

但是您可能会问,如果把对象和态射看成集合的元素,那 ob(C)𝑜𝑏(𝐶) 不就是由所有对象构成的一个集合,而 C(A,B)𝐶(𝐴,𝐵) 不就是由对象A到对象B的所有态射构成的集合么?为什么要用聚集(Collection)这个名字?

因为如果有一个范畴,它的对象是所有的集合,那么,这个包含所有集合的东西,不能是一个集合,这就是著名的罗素悖论。

我们做下思想实验,朴素集合论规定一个集合不能包含自己。但在这个实验中,我们考虑两种情况,集合可以包含自己以及集合不能包含自己。

首先考虑一个集合可以包含自己,把所有集合放到一起,构成一个集合A,因为A是刚刚才构建好的,它还没在A里面,根据A的定义,我们的集合A应该包含所有的集合,因此我们还得把A也放到集合A里面,这样就得到了集合B,嗯,这下应该OK了,但是,我们刚得到的这个集合B没在集合B里面,所以我们还得把集合B,放到集合B里面,这样就陷入了循环。

也许你会想,那定义集合为不能包含自己,不就行了?那么我们考虑所有不包含自己的集合所构成的集合A。集合A如果不包含自己,那么按照定义,它就得包含自己,如果它包含自己,那么它就违背了集合的定义,即,集合不能包含自己。

范畴论中的一个范畴,它包含的所有对象所构成的聚集ob(C)𝑜𝑏(𝐶)可以很“大”,比如包含所有的集合,每个集合是一个对象,而因为这所有对象构成的东西叫做聚集(Collection),聚集不算所有集合中的一个,这样就避免了罗素悖论。

在范畴论的定义中,使用聚集这个概念,准确描述了“把所有对象放到一起”,或“把所有从A到B的箭头放到一起”这个意思,范畴论的定义仅需要这个。这个聚集,比集合的要求少,它不必满足集合论的公理,同时,也不必具有集合论的所有运算,例如:交集、并集,甚至幂集等。这样,从定义的角度看,依赖最少,就说范畴的定义,不依赖于集合的定义,只依赖于一个大家都公认的概念,即我们可以把若干个东西放到一起,这个东西可以取个名字,叫做——聚集。

态射及其性质

态射含义初探

什么是态射?这是每一个学习范畴论学习者都会问的问题。好在我们之前学习了一些具体例子,所以,简单说,态射就是箭头,而箭头表示一种对应(Mapping),因此,态射就是一种对应,即将一个东西对应到一个东西。在范畴论里就是将一个对象对应到一个对象。态射与箭头在范畴论里是同义词,表示一个意思,即对应。

无损对应

丈夫妻子范畴

Figure 1. 丈夫妻子范畴

如上图所示,其中一个态射表示丈夫对应妻子,另一个态射表示妻子对应丈夫,显然这种对应只是表明了丈夫和妻子的关系,不会影响丈夫或妻子。

有损对应

有损对应也是一种对应,但是是一种特殊的对应,如下图所示:

金矿石范畴

Figure 2. 金矿石范畴

我们让上图的金矿石对象,携带一块真的金矿石A,然后沿着箭头向右走,最后,我们发现,金矿石A变成了一个金币,取个名字叫做金币A,具体说就是:金矿石A首先变成了金子A,然后变成了金币A。这看起来不是对应啊。

但是写为如下形式,就了然了:

原来的金矿石A对应冶炼后得到的金子A,冶炼后的金子A对应将其铸造后的金币A。因此,这仍然是一种对应,只是在对应的过程中,对象携带的信息发生了变化:

  • 一开始金矿石对象携带着金矿石A

  • 经过冶炼,金矿石对象不再携带金矿石A,但金子对象携带着金子A

  • 经过铸造,金币对象携带者金币A,而金子对象不再携带着金子A

我们再看一个例子,这个例子我们让范畴携带一个数学对象:

整数加1范畴

Figure 3. 整数加1范畴

假设上述范畴携带一个具体数字的信息,比如10,那么每次走“加1”这个箭头,这个具体数字都会加1。

从直观上讲,上述两例,是一个东西变成了一个东西,即变换(transform),变换是对应的一种特殊形式,因为变换改变了对象携带的信息,因此我们称为有损对应。无损对应和有损对应只是两个名字,方便我们更全面地理解对应的含义。

在其他书中,也许会这么说:态射的含义一般是映射和变换,那么即是指无损对应和有损对应。

需要特别注意的是,范畴对象,例如上面例子的金矿石和整数,它们指代的是金矿石和整数这两个概念,无论携带不携带具体信息,例如携带金矿石A或整数10,金矿石和整数这两个对象,作为范畴里面的实体,始终存在,不依赖于任何具体的金矿石或具体的整数。

态射的性质

一个范畴所包含的态射往往是非常丰富的,就说会有很多很多箭头,我们往往只画出我们关心的那些箭头,其他没有画出的默认存在。因此,为了之后的示意图简洁,我们约定,恒等箭头默认存在但是可以不画出,对于画出的箭头,可以给定具体名字,也可以不给定。对于示意图无关紧要的箭头,可以不画出。

复合

复合就是首尾相连的两个态射,或一个态射,可以构成一个新的态射。为叙述方便,因为态射和箭头在范畴论中是同义词,因此我们将混用这两种说法。

首先,需要说明的是,箭头的复合是范畴的一种要求,并不是箭头的自然性质。如下图所示:

非态射箭头

Figure 4. 非态射箭头

如上图所示,张三是李四的朋友,李四是王五的朋友,并不能推出张三是王五的朋友。因此我们不能画出张三到王五的箭头,从而上图不是一个范畴。

在范畴论中,我们要求,首尾相连的箭头,必须能够复合,凡是范畴论的态射,都必须可复合。如下图所示:

态射的复合

Figure 5. 态射的复合

如上图所示,A、B、C、D 分别由箭头f、g、h连接,于是我们立即得到:g∘f、h∘g和h∘g∘f三个箭头,在图中用虚线标出。g∘f念作 g复合f

你可以把复合看作是态射的一种运算,凡首尾相接的任何两个箭头g和h,总可以进行h∘g的运算。这里注意一下写法:

参照上图,按照图中的箭头方向,是f然后g,但是f和g的复合,写为g∘f,表示先走f,然后接着走g,为什么要倒着写呢?如果我们写为嵌套形式就清楚了:g(f),小括号先运算所以先走f,然后再走g,这个顺序恰好与g∘f的字母顺序一致。因此,你也可以把g∘f念作 g括f 或 g圈f,这样先后顺序就不会搞混。

有趣的是,如果箭头g自身首尾相接,则可以自身复合,得到新箭头g∘g,这个箭头还可以再次复合g,变成g∘g∘g,如此不断复合,可以得到无限多的箭头!

最后,你可能会问,为什么要规定箭头为可复合呢?这是因为范畴论非常关注可组合性,即通过箭头的复合,我们可以进行各种各样的对应或变换,从而建立一个强大的系统。如果箭头不能复合,或者不总是能复合,则这个系统的可组合性就会大打折扣,不是那么好操作了。因此范畴规定,箭头必须可复合,即箭头必须是个足够“友好”的箭头。

结合律

如果把箭头的复合看成运算,那么它是否满足:交换律、结合律、分配律呢?

首先,态射复合不满足交换律,g∘f ≠ f∘g,如下图所示:

态射的复合

Figure 6. 态射的复合

观察上图,你会发现,f∘g,就是先从B走到C,再A走到B,完全连不起来,因此态射的复合必须保序,所以不满足交换律。

分配律指的是,对于两种运算,例如 "⋅" 和 "+" (注意这里点和加指两种特定的运算,不是数字的加和乘),若满足:a⋅(b+c)=(a⋅b)(a⋅c) 和 (a+b)⋅c=(a⋅c)(b⋅c),则 "⋅" 对 "+" 满足分配律。因为我们的态射只有一个运算,那就是复合运算,所以无须考虑。

最后我们看结合律,范畴论要求,态射必须满足结合律,如下图所示:

态射的结合律

Figure 7. 态射的结合律

范畴论要求:(h∘g)∘f=h∘(g∘f),我们考察一个旅行范畴:

旅行范畴

Figure 8. 旅行范畴

如上图所示,箭头的复合,就是将旅行的两步,看作一步,可以是前两步看作一步,也可以是后两步看作一步。这是自然的,态射的结合律非常直观。

因此,态射的结合律,是这种直观的公理化,即,对于任何态射 A→fB→gC→hD𝐴→𝑓𝐵→𝑔𝐶→ℎ𝐷,总有 (h∘g)∘f=h∘(g∘f)(ℎ∘𝑔)∘𝑓=ℎ∘(𝑔∘𝑓)。

对象及其性质

对象

如前所述,每个对象都必须有一个恒等态射。

如果仔细观察范畴论对对象的定义,除了这条要求,就没有别的要求了。如果我们把范畴看成是承载信息的一个载体,那么因为我们对对象除了恒等态射没有别的规定,因此该对象也不必承担特定的信息承载义务,所以对象单独拿出来,不考虑恒等态射,则它可以没有(内部)结构。

在范畴论中,对象是箭头的起点和终点,箭头通过对象标定的这些起点和终点进行连接。这是范畴论中对象的主要作用,甚至是唯一作用。即:可以把范畴看成是一个箭头的聚集,箭头的起点和终点是对象,对象可以看成点的聚集,点不包含任何信息。

恒等态射的性质

单位律

我们前面学习恒等态射时,说恒等态射是一个从对象出发,指向对象自己,不做任何其他操作的箭头。这是一种自然语言描述。我们看范畴定义中恒等态射的性质:

单位律(Unit Laws):对于任何态射 A→fB𝐴→𝑓𝐵,总有:f∘IdA=f=IdB∘f𝑓∘𝐼𝑑𝐴=𝑓=𝐼𝑑𝐵∘𝑓

恒等态射的性质

Figure 9. 恒等态射的性质

如上图所示,按照单位律,我们有:

对任何态射 A→fB𝐴→𝑓𝐵,总有:f∘IdA=f=IdB∘f𝑓∘𝐼𝑑𝐴=𝑓=𝐼𝑑𝐵∘𝑓

对任何态射 A→gC𝐴→𝑔𝐶,总有:g∘IdA=g=IdC∘g𝑔∘𝐼𝑑𝐴=𝑔=𝐼𝑑𝐶∘𝑔

... ...

这是说个什么意思?

就是说恒等箭头和任何其他箭头的复合,不会对复合结果产生影响,或者说,复合恒等箭头总是恒等于不复合恒等箭头。

恒等态射就像乘法中的1,1乘以任何数都是任何数,任何数乘以1都是任何数。

恒等态射就像加法中的0,0加任何数都是任何数,任何数加0都是任何数。

恒等箭头的验证

我们反过来考虑这一问题,比如,我们得到一个态射I,如何验证它是不是恒等态射呢?

恒等态射的性质

Figure 10. 恒等态射的性质

我们把任何指向B的态射(包括I),用I复合,即:I∘f,看它是不是等于f,即,检测:I∘f=f;

同时,对于任何从B发出的箭头g(包括I),我们用它来复合I,即g∘I,看它是不是等于g,即:检测:g∘I=g;

如果对于任何指向B和从B发出的态射,检测都通过,则I就是恒等态射!这反映了范畴论典型的外部观点,即我们不看f、g 和 I 具体含义如何。对于I来说,如果它参加复合和不参加复合,效果一样,那么它就是恒等态射。

这里有必要注意的是,上述描述的任何指向和发出的态射,指的是任何可能的指向和发出的态射。即,检测时必须考虑所有进入B和从B发出的所有可能的态射,包括被检测的态射自身(它既是指向B的态射,又是从B发出的态射)。这相当于说:把所有可能的检测都做一遍,如果检测成功,则I就是恒等态射。

所有可能的态射是个什么意思?我们考虑两个集合A、B,则可以定义A、B之间的函数。如果我们把集合A、B看作一个范畴中的两个对象,从A到B和从B到A的函数看成两个对象之间的态射,则所有可能的态射就是集合A、B之间所有可能定义的函数。

通常,在范畴论中我们不用去验证一个箭头是不是恒等箭头,因为对于任何对象,恒等箭头就是从一个对象出发,返回该对象的什么其他操作都不做的箭头。

但是这个恒等箭头的验证却给我们一个启示:穷尽一切可能方法,验证A’是不是A,如果全是,那么A就是A。

恒等态射的唯一性

对于一个对象,可不可能有两个不同的恒等态射呢?不可能,恒等态射必然唯一,这可以从恒等态射的单位律推出。

我们简要证明一下:

假设同一对象A有两个恒等态射Id1和Id2,它们不同,即:Id1 ≠ Id2。

显然,这两个恒等态射既是从A出发的态射,又是进入A的态射,于是按照恒等态射的性质,我们有:

把Id2看作进入的箭头,用Id1的单位性质,于是有:Id1∘Id2=Id2;对于这个得到的等式,我们用Id2的单位性质,有:Id1=Id2,然而这和我们的假设Id1 ≠ Id2矛盾。

因此 Id1 ≠ Id2 不可能,所以 Id1 = Id2。

因此恒等态射若存在,必然唯一。

而范畴论规定,恒等态射存在,所以恒等态射在范畴论中存在且唯一,即每个对象有且仅有一个恒等态射。

母范畴(Meta Category)

学习范畴论的困难在于它非常抽象,这是个什么意思?

就是说你在很多地方都可以看到范畴的具体例子,每一个例子都是范畴,但又不是范畴的全部。

这就好像我们在海边捡贝壳,我们捡到了一个扇形的贝壳,于是我们认为贝壳就是扇形的,但是另一天,我们居然捡到了一个圆形的贝壳,这让我们非常兴奋,原来,贝壳也可以是圆形的。我们信心满满,认为贝壳就应该是扇形的或者圆形的。这天,我们在海边又发现了一个椭圆形的贝壳,我们困惑了,这个圆形的家伙到底是不是贝壳?经过反复的思考,我们发现,贝壳有着更加深刻的结构和性质,这个结构和性质,并不依赖于具体的形状,虽然每个具体贝壳都有个具体的形状。

我们在本节所给出的范畴的定义,是纯公理化的,就是说,它是逻辑的起点,它 —— 并不是任何其他数学概念的推论。我们给它取个名字,叫做:Meta Category,即母范畴。您在其他的文献中,Meta Category 可能会被翻译为元范畴,但是元范畴不够通俗,而且也不够形象。叫做母范畴,我们可以采用描述法,更好地把握元范畴这个概念。

A metacategory is purely axiomatic, and does not use set theory.

母范畴是纯公理化的,它不依赖集合论。

就是说,你可以将本节定义的范畴概念,作为公理,也就是逻辑的起点来用。在该观点下,我们会看到范畴的很多具体例子,而这些例子,贯穿了很多数学问题、数学分支、数学概念和数学陈述(命题)。

母范畴的通俗描述

母范畴就像照进不可名状的世界的光线,在该光线下,无数的问题、概念、命题自然而然地诞生出来,将世界呈现为一个有形的轮廓。而分散在数学各个角落的问题、概念和陈述,不再杂乱无章,相互孤立,而是成为一个整体的一部分,这个整体就是母范畴。

母范畴是一个神奇的范畴,它将各种不同的数学分支,作为其可能特征的“化身”或“具体化”,与其相连。对各数学分支的追本溯源,我们就回归到母亲的怀抱 —— 母范畴。

反过来,当我们探索新的领域,发现问题、建立概念、陈述和命题时,母范畴就化身为这些具体的问题、概念和命题,使我们的新探索,自然成为母范畴的一部分。

以上关于母范畴的通俗描述,取法了亚历山大·格罗滕迪克(Alexander Grothendieck)的书《收获与播种》中的一些叙述方式。在学习范畴论时,我们经常会问,范畴这个概念,到底是什么?我们总是想马上搞清楚,范畴到底是什么意思,它的全部是个什么样子。

我想,上述描述是个比较好的回答,范畴是什么?它是一个母亲般的观点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1856867.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

神经网络参数-----学习率(Learning Rate)

学习率 学习率是训练神经网络的重要超参数之一,它代表在每一次迭代中梯度向损失函数最优解移动的步长。它的大小决定网络学习速度的快慢。在网络训练过程中,模型通过样本数据给出预测值,计算代价函数并通过反向传播来调整参数。重复上述过程…

浅析优化文本提示技术 —— TextGrad

引言 大模型领域,现在除了不断推出各种底层大模型外,还涌现了许多包含复杂组件的复合系统,包括框架、工具等。 TextGrad VS DSPy 先来从大的概念范围看看 TextGrad 与 DSPy 的对比: TextGrad: (1&…

【PL理论深化】(3) 数学归纳法:归纳假设 (IH) | 结构归纳法 | 归纳假设的证明

💬 写在前面:所有编程语言都是通过归纳法定义的。因此,虽然编程语言本身是有限的,但用该语言编写的程序数量是没有限制的,本章将学习编程语言研究中最基本的归纳法。本章我们继续讲解归纳法,介绍归纳假设和…

Jitter Injection详解

一、定义与作用 Jitter Injection,即抖动注入,是一种在通信系统中人为地添加抖动的技术。该技术通过在发送端对数据包进行延迟和抖动调整,以实现对整个通信系统的时延和抖动的控制。其主要作用包括: 改善传输质量:通…

振弦采集仪在地铁隧道工程安全监测中的应用实践

振弦采集仪在地铁隧道工程安全监测中的应用实践 河北稳控科技振弦采集仪是一种常用于结构监测领域的仪器,主要用于测量结构物振动的频率、幅值、相位以及动力特性等参数。在地铁隧道工程的安全监测中,振弦采集仪起着关键的作用。 随着城市的不断发展&am…

同城跑腿APP开发,随叫随到超方便!

随着移动互联网的发展和人们生活节奏的加快,越来越多的人们没有闲暇的时间来做一些繁琐的事情,比如说买药、挂号、排队、送花、取文件等等。如果没有时间去处理这些事情怎么办?开发同城跑腿APP,提供跑腿服务,随时办事随…

Vue核心指令解析:探索MVVM与数据操作之美

文章目录 前言一、Vue.js1. MVVM模式介绍2. 单页面组件介绍及案例讲解3. 插值表达式介绍及案例讲解 二、Vue常用指令详解1. 数据绑定指令v-textv-html 2. 条件渲染指令v-ifv-show 3. 列表渲染指令v-for循环数组介绍及案例讲解循环对象介绍及案例讲解 4. 事件监听指令v-on事件修…

【TB作品】MSP430G2553单片机,红外双机通信,红外通信程序

文章目录 NEC 红外通信协议实验步骤1. 硬件连接2. 程序说明红外发射部分红外接收部分 说明帮助 NEC 红外通信协议 NEC 红外通信协议是一种广泛应用于遥控器设备的红外通信协议。它采用脉冲宽度调制(PWM)来编码数据,并使用38kHz的载波频率进行传输。协议的特点如下&…

Java医院绩效考核系统源码:关于医院绩效考核系统的技术架构、系统功能、如何选择医院绩效考核管理系统

Java医院绩效考核系统源码:关于医院绩效考核系统的技术架构、系统功能、如何选择医院绩效考核管理系统 随着医疗技术的不断发展,医院绩效管理系统已经成为提升医疗服务质量和效率的关键技术之一。本文将介绍医院绩效管理系统的概念、开发环境、功能应用…

磁芯电感 晶谷电容可镀银浆用玻璃 晶谷电阻银浆料低温玻璃粉(耐强酸)

晶谷电阻银浆料低温玻璃粉(耐强酸)软化点在490至580度之间,线膨胀系数为(75至95)10-7,粒径为1.5至3微米(可按要求订做),外观颜色为白色超细粉末,烧后颜色无色…

Python 的垃圾回收机制使用详解

概要 在Python编程中,内存管理是一个非常重要的方面。为了帮助开发者管理内存,Python引入了垃圾回收(Garbage Collection)机制。本文将详细介绍Python中的垃圾回收,包括其工作原理、垃圾回收算法以及如何在实际项目中使用和优化垃圾回收。 一、垃圾回收的概念 垃圾回收是…

问题-python-爬虫无法爬取外网资源问题(python爬虫)

方法一: 这个报错通过关掉梯子就能解决,目前不清楚具体原理。 后续了解具体原理了,我会在这篇文章上更新具体分析—— 方法二: 也可以把这个东西打开,但是用完建议关掉。

期望30K,我的高并发架构知识体系

我最终还是上岸了,花了3天总结了几千字的高并发知识体系思维导图,分享出来希望能帮助有缘人吧,以下只是部分截图,文中末尾领取👇🏻,免费,免费,免费,重要的事情…

移动硬盘盒:便携与交互的完美结合 PD 充电IC

在数字化时代的浪潮中,数据已成为我们生活中不可或缺的一部分。随着数据的不断增长,人们对于数据存储的需求也在不断增加。传统的存储设备如U盘、光盘等,虽然具有一定的便携性,但在容量和稳定性方面往往难以满足现代人的需求。而移…

Python爬虫-贝壳新房

前言 本文是该专栏的第32篇,后面会持续分享python爬虫干货知识,记得关注。 本文以某房网为例,如下图所示,采集对应城市的新房房源数据。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码) 正文 地…

MyBatis系列之分页插件及问题

概述 无论是C端产品页面,还是后台系统页面,不可能一次性将全部数据加载出来。后台系统一般都是PC端登录,用Table组件(如Ant Design Table)渲染展示数据,可点击列表的下一页(或指定某一页&#…

“移”起AI+丨首创AI值守无人小店!中国移动视觉大模型加速落地

在城市里开设一家24小时便利店有多难?创业者常常面临着熬夜看店、全年无休的困境,而选择增加雇佣员工看店又会面临着成本高昂、利润微薄的问题。 日前在温州,一家AI无人值守便利店引发关注。在这家无人便利小店内,浙江移动试点部…

AI赋能天气:微软研究院发布首个大规模大气基础模型Aurora

编者按:气候变化日益加剧,高温、洪水、干旱,频率和强度不断增加的全球极端天气给整个人类社会都带来了难以估计的影响。这给现有的天气预测模型提出了更高的要求——这些模型要更准确地预测极端天气变化,为政府、企业和公众提供更…

头歌——机器、深度学习——图像生成

第1关:手写数字体生成 任务描述 本关任务:编写一个程序,实现手写数字体的生成。 相关知识 为了完成本关任务,你需要掌握:1.生成器,2.判别器,3.GAN网络训练,4.手写数字体生成。 …

Gitee 的公钥删不掉

公钥管理里已经没有公钥了, 仓库里还有,这是怎么回事? 这两个好像又没什么关系。 那为啥要搞两处呢? 个人信息里的公钥一直就没有仓库里使用的公钥, 删掉个人信息里的也没什么影响。 在仓库管理页面导入新公钥提示已…