英伟达小姐姐的Python隐藏技巧合集,推特2400赞,代码可以直接跑

英伟达小姐姐Chip Huyen谈机器学习面试经验【70页ppt】.zip Chip Huyen,一位来自越南的作家和计算机科学家,总部位于硅谷。毕业于斯坦福大学(Stanford University),获得计算机科学学士和硕士学位。在那里,创建并教授了用于深入学习研究的TensorFlow课程。长期从事人工智能研究,是机器学习领域专家级人物,在研究过程中,主张机器学习要面向实践,面向实际,立志解决当前问题,AI必须要有商业驱动,方能足够长远的发展。 立即下载
栗子 发自 凹非寺 
量子位 报道 | 公众号 QbitAI
640?wx_fmt=jpeg

常常发资源的英伟达工程师小姐姐Chip Huyen,又发射了一套Python隐藏功能合集。

里面都是她“从前没发现,或者从前不太敢用”的机器学习技巧,有notebook可以直接跑。

合集名叫python-is-cool,推特宣布之后不到半天,已经收获了2400+赞。

640?wx_fmt=png

那么,这份令人奔走相告的资源,到底长什么样子?

隐藏技巧五大类

就像开头提到的:这里的功能,要么是小姐姐花了很久才找到的,要么是曾经让她瑟瑟发抖到不敢尝试的。

不过现在,她的技巧已经成功支配了这些功能,于是分享了出来。

目前一共有5个版块,专注机器学习,日后还会持续更新:

1、Lambda、Map、Filter、Reduce函数

lambda 关键字,是用来创建内联函数 (Inline Functions) 的。square_fn 和 square_ld 函数,在这里是一样的。

1def square_fn(x):
2    return x * x
3
4square_ld = lambda x : x * x
5
6for i in range(10):
7    assert square_fn(i) == square_ld(i)

lambda 函数可以快速声明,所以拿来当回调 (Callbacks) 函数是非常理想的:就是作为参数 (Arguments) 传递给其他函数用的,那种函数。

和 map、filter 和 reduce 这样的函数搭配使用,尤其有效。

map(fn,iterable) 会把 fn 应用在 iterable 的所有元素上,返回一个map object。

1nums = [1/3, 333/7, 2323/2230, 40/34, 2/3]
2nums_squared = [num * num for num in nums]
3print(nums_squared)
4
5==> [0.1111111, 2263.04081632, 1.085147, 1.384083, 0.44444444]

这样调用,跟用有回调函数的 map 来调用,是一样的。

1nums_squared_1 = map(square_fn, nums)
2nums_squared_2 = map(lambda x : x * x, nums)
3print(list(nums_squared_1))
4
5==> [0.1111111, 2263.04081632, 1.085147, 1.384083, 0.44444444]

map 也可以有不止一个 iterable。

比如,你要想计算一个简单线性函数 f(x)=ax+b 的均方误差 (MSE) ,两种方法就是等同的。

 1a, b = 3, -0.5
 2xs = [2, 3, 4, 5]
 3labels = [6.4, 8.9, 10.9, 15.3]
 4
 5# Method 1: using a loop
 6errors = []
 7for i, x in enumerate(xs):
 8    errors.append((a * x + b - labels[i]) ** 2)
 9result1 = sum(errors) ** 0.5 / len(xs)
10
11# Method 2: using map
12diffs = map(lambda x, y: (a * x + b - y) ** 2, xs, labels)
13result2 = sum(diffs) ** 0.5 / len(xs)
14
15print(result1, result2)
16
17==> 0.35089172119045514 0.35089172119045514

要注意的是,map 和 filter 返回的是迭代器 (Iterator) ,这就是说它们的值不是存储的,是按需生成的。

当你调用了sum(diffs) 之后,diffs 就空了。如果你想要保留 diffs 里面所有的元素,就用 list(diffs) 把它转换成一个列表。

filter(fn,iterable) 也是和 map 一样道理,只不过 fn 返回的是一个布尔值,filter 返回的是,iterable 里面所有 fn 返回True的元素。

1bad_preds = filter(lambda x: x > 0.5, errors)
2print(list(bad_preds))
3
4==> [0.8100000000000006, 0.6400000000000011]

reduce(fn,iterable,initializer) 是用来给列表里的所有元素,迭代地应用某一个算子。比如,想要算出列表里所有元素的乘积:

1product = 1
2for num in nums:
3    product *= num
4print(product)
5
6==> 12.95564683272412

上面这串代码,和下面这串代码是等同的:

1from functools import reduce
2product = reduce(lambda x, y: x * y, nums)
3print(product)
4
5==> 12.95564683272412

2、列表操作

小姐姐说,Python的列表太炫酷了。

2.1、解包 (Unpacking)

想把一个列表解包成一个一个元素,就这样:

1elems = [1, 2, 3, 4]
2a, b, c, d = elems
3print(a, b, c, d)
4
5==> 1 2 3 4

也可以这样:

1elems = [1, 2, 3, 4]
2a, b, c, d = elems
3print(a, b, c, d)
4
5==> 1 2 3 4

2.2、切片 (Slicing)

大家可能知道,如果想把一个列表反过来排,就用 [::-1] 。

1elems = list(range(10))
2print(elems)
3
4==> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
5
6print(elems[::-1])
7
8==> [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

而 [x:y:z] 这种语法的意思是,从索引x到索引y,每z个元素取一个。

如果z是负数,就是反向取了。

如果x不特别指定,就默认是在遍历列表的方向上,遇到的第一个元素。

如果y不特别指定,就默认是列表最后一个元素。

所以,我们要从一个列表里面,每两个取一个的话,就是 [::2] 。

1evens = elems[::2]
2print(evens)
3
4reversed_evens = elems[-2::-2]
5print(reversed_evens)
6
7==> [0, 2, 4, 6, 8]
8    [8, 6, 4, 2, 0]

也可以用这种方法,把一个列表里的偶数都删掉,只留奇数:

1del elems[::2]
2print(elems)
3
4==> [1, 3, 5, 7, 9]

2.3、插入 (Insertion)

把列表里的其中一个元素的值,换成另一个值。

1elems = list(range(10))
2elems[1] = 10
3print(elems)
4
5==> [0, 10, 2, 3, 4, 5, 6, 7, 8, 9]

如果想把某个索引处的一个元素,替换成多个元素,比如把 1 换成 20, 30, 40 :

1elems = list(range(10))
2elems[1:2] = [20, 30, 40]
3print(elems)
4
5==> [0, 20, 30, 40, 2, 3, 4, 5, 6, 7, 8, 9]

如果想把3个值 0.2, 0.3, 0.5 插在索引0和索引1之间:

1elems = list(range(10))
2elems[1:1] = [0.2, 0.3, 0.5]
3print(elems)
4
5==> [0, 0.2, 0.3, 0.5, 1, 2, 3, 4, 5, 6, 7, 8, 9]

2.4、拉平 (Flattening)

如果,一个列表里的每个元素都是个列表,可以用sum把它拉平:

1list_of_lists = [[1], [2, 3], [4, 5, 6]]
2sum(list_of_lists, [])
3
4==> [1, 2, 3, 4, 5, 6]

如果是嵌套列表 (Nested List) 的话,就可以用递归的方法把它拉平。这也是lambda函数又一种优美的使用方法:在创建函数的同一行,就能用上这个函数。

1nested_lists = [[1, 2], [[3, 4], [5, 6], [[7, 8], [9, 10], [[11, [12, 13]]]]]]
2flatten = lambda x: [y for l in x for y in flatten(l)] if type(x) is list else [x]
3flatten(nested_lists)
4
5# This line of code is from
6# https://github.com/sahands/python-by-example/blob/master/python-by-example.rst#flattening-lists

2.5、列表vs生成器

要想知道列表和生成器的区别在哪,看个例子:从token列表里面创建n-grams。

一种方法是用滑窗来创建:

 1tokens = ['i', 'want', 'to', 'go', 'to', 'school']
 2
 3def ngrams(tokens, n):
 4    length = len(tokens)
 5    grams = []
 6    for i in range(length - n + 1):
 7        grams.append(tokens[i:i+n])
 8    return grams
 9
10print(ngrams(tokens, 3))
11
12==> [['i', 'want', 'to'],
13     ['want', 'to', 'go'],
14     ['to', 'go', 'to'],
15     ['go', 'to', 'school']]

上面这个例子,是需要把所有n-gram同时储存起来的。如果文本里有m个token,内存需求就是 O(nm) 。m值太大的话,存储就可能成问题。

所以,不一定要用一个列表储存所有n-gram。可以用一个生成器,在收到指令的时候,生成下一个n-gram,这叫做惰性计算 (Lazy Evaluation) 。

只要让 ngrams 函数,用 yield 关键字返回一个生成器,然后内存需求就变成 O(n) 了。

 1def ngrams(tokens, n):
 2    length = len(tokens)
 3    for i in range(length - n + 1):
 4        yield tokens[i:i+n]
 5
 6ngrams_generator = ngrams(tokens, 3)
 7print(ngrams_generator)
 8
 9==> <generator object ngrams at 0x1069b26d0>
10
11for ngram in ngrams_generator:
12    print(ngram)
13
14==> ['i', 'want', 'to']
15    ['want', 'to', 'go']
16    ['to', 'go', 'to']
17    ['go', 'to', 'school']

还有一种生成n-grams的方法,是用切片来创建列表:[0, 1, …, -n], [1, 2, …, -n+1], …, [n-1, n, …, -1],然后把它们zip到一起。

 1def ngrams(tokens, n):
 2    length = len(tokens)
 3    slices = (tokens[i:length-n+i+1] for i in range(n))
 4    return zip(*slices)
 5
 6ngrams_generator = ngrams(tokens, 3)
 7print(ngrams_generator)
 8
 9==> <zip object at 0x1069a7dc8> # zip objects are generators
10
11for ngram in ngrams_generator:
12    print(ngram)
13
14==> ('i', 'want', 'to')
15    ('want', 'to', 'go')
16    ('to', 'go', 'to')
17    ('go', 'to', 'school')

注意,创建切片用的是 (tokens[…] for i in range(n)) ,不是 [tokens[…] for i in range(n)] 。

[] 返回的是列表,() 返回的是生成器。

3、类,以及魔术方法

在Python里面,魔术方法 (Magic Methods) 是用双下划线,作为前缀后缀的。

其中,最知名的可能就是 _init_ 了。

1class Node:
2    """ A struct to denote the node of a binary tree.
3    It contains a value and pointers to left and right children.
4    """
5    def __init__(self, value, left=None, right=None):
6        self.value = value
7        self.left = left
8        self.right = right

不过,如果想输出 (Print) 一个节点 (Node) ,就不是很容易了。

1root = Node(5)
2print(root) # <__main__.Node object at 0x1069c4518>

理想情况,应该是输出它的值,如果它有子节点的话,也输出子节点的值。

所以,要用魔术方法 _repr_ ,它必须返回一个可输出的object,如字符串。

 1class Node:
 2    """ A struct to denote the node of a binary tree.
 3    It contains a value and pointers to left and right children.
 4    """
 5    def __init__(self, value, left=None, right=None):
 6        self.value = value
 7        self.left = left
 8        self.right = right
 9
10    def __repr__(self):    
11        strings = [f'value: {self.value}']
12        strings.append(f'left: {self.left.value}' if self.left else 'left: None')
13        strings.append(f'right: {self.right.value}' if self.right else 'right: None')
14        return ', '.join(strings)
15
16left = Node(4)
17root = Node(5, left)
18print(root) # value: 5, left: 4, right: None

如果想对比两个节点 (的各种值) ,就用 _eq_ 来重载 == 运算符,用 _lt_ 来重载 < 运算符,用 _ge_ 来重载 >= 。

 1class Node:
 2    """ A struct to denote the node of a binary tree.
 3    It contains a value and pointers to left and right children.
 4    """
 5    def __init__(self, value, left=None, right=None):
 6        self.value = value
 7        self.left = left
 8        self.right = right
 9
10    def __eq__(self, other):
11        return self.value == other.value
12
13    def __lt__(self, other):
14        return self.value < other.value
15
16    def __ge__(self, other):
17        return self.value >= other.value
18
19
20left = Node(4)
21root = Node(5, left)
22print(left == root) # False
23print(left < root) # True
24print(left >= root) # False

想要了解更多魔术方法,请前往:https://www.tutorialsteacher.com/python/magic-methods-in-python

或者使用官方文档,只是有一点点难读:https://docs.python.org/3/reference/datamodel.html#special-method-names

这里,还要重点安利几种魔术方法:

一是 _len_ :重载 len() 函数用的。_str_:重载 str() 函数用的。_iter_:想让object变成迭代器,就用这个。有了它,还可以在object上调用 next() 函数。

对于像节点这样的类,我们已经知道了它支持的所有属性 (Attributes) :value、left和right,那就可以用 _slots_ 来表示这些值。这样有助于提升性能,节省内存。

1class Node:
2    """ A struct to denote the node of a binary tree.
3    It contains a value and pointers to left and right children.
4    """
5    __slots__ = ('value', 'left', 'right')
6    def __init__(self, value, left=None, right=None):
7        self.value = value
8        self.left = left
9        self.right = right

想要全面了解 _slots_ 的优点和缺点,可以看看Aaron Hall的精彩回答:https://stackoverflow.com/a/28059785/5029595

4、局部命名空间,对象的属性

locals() 函数,返回的是一个字典 (Dictionary) ,它包含了局部命名空间 (Local Namespace) 里定义的变量。

 1class Model1:
 2    def __init__(self, hidden_size=100, num_layers=3, learning_rate=3e-4):
 3        print(locals())
 4        self.hidden_size = hidden_size
 5        self.num_layers = num_layers
 6        self.learning_rate = learning_rate
 7
 8model1 = Model1()
 9
10==> {'learning_rate': 0.0003, 'num_layers': 3, 'hidden_size': 100, 'self': <__main__.Model1 object at 0x1069b1470>}

一个object的所有属性,都存在 _dict_ 里面。

1print(model1.__dict__)
2
3==> {'hidden_size': 100, 'num_layers': 3, 'learning_rate': 0.0003}

注意,当参数列表 (List of Arguments) 很大的时候,手动把每个参数值分配给一个属性会很累。

想简单一点的话,可以直接把整个参数列表分配给 _dict_ 。

 1class Model2:
 2    def __init__(self, hidden_size=100, num_layers=3, learning_rate=3e-4):
 3        params = locals()
 4        del params['self']
 5        self.__dict__ = params
 6
 7model2 = Model2()
 8print(model2.__dict__)
 9
10==> {'learning_rate': 0.0003, 'num_layers': 3, 'hidden_size': 100}

当object是用 kwargs** 初始化的时候,这种做法尤其方便 (虽然 kwargs** 还是尽量少用为好) :

1class Model3:
2    def __init__(self, **kwargs):
3        self.__dict__ = kwargs
4
5model3 = Model3(hidden_size=100, num_layers=3, learning_rate=3e-4)
6print(model3.__dict__)
7
8==> {'hidden_size': 100, 'num_layers': 3, 'learning_rate': 0.0003}

前4个版块就到这里了,至于第5个版块传授了怎样的技巧,先不介绍,大家可以从传送门前往观察:

https://github.com/chiphuyen/python-is-cool

宝藏小姐姐

贡献资源的Chip Huyen小姐姐,现在是英伟达的高级深度学习工程师了。

但在2015年进入斯坦福读书之前,她还是个没接触过深度学习的作家,旅行路上的故事已经出版了两本书。

640?wx_fmt=png

△ 对,是个越南小姐姐

原本想读英文专业,却在选了一门计算机课之后,走上了深度学习的不归路。

喜欢就点「好看」吧 ! 

学术版GPT安装教程——保姆版(附带原生GPT注册教程) 学术版GPT图文安装教程 阅读详情

相关推荐

避开这些坑!医疗影像数据增强的6个安全操作指南(附PyTorch代码)

本文详细介绍了医疗影像数据增强的六大安全准则,包括解剖结构守恒、密度值物理意义保留和病灶特征保护等关键原则,并提供了PyTorch实战代码。通过具体案例和参数建议,帮助开发者在肺结节检测和MRI分割等医疗AI应用中实现安全有效的数据增强,避免因不当操作导致的诊断误差。

cola5的博客 556

提示工程、推理优化大热,盘点全网近900个开源AI工具有这些发现!

Chip Huyen,一位来自越南的作家和计算机科学家,实时机器学习平台Claypot AI的联合创始人,MLOps Discord的维护者,曾在NVIDIA、 Snorkel AI和 Netflix构建过机器学习工具,是GitHub的活跃用户。下方的示例图,是两个此类仓库与两个更持久的软件的增长曲线对比。:AI堆栈的底层是基础设施,其中包括模型部署(vllm、NVIDIA 的 Triton)、计算管理(skypilot)、向量搜索数据库(faiss、milvus、qdrant、lancedb)等。

优快云资讯 1万+

TeXstudio完整安装配置教程(2025最新版)

至此,你已经完成了TeXstudio的完整安装和配置!现在你可以:✅ 使用TeXstudio编写LaTeX文档✅ 正确编译中英文混排的文档✅ 掌握基本的编辑和配置技巧LaTeX的学习曲线较陡,但一旦掌握,你会发现它在学术写作中的强大之处。建议从简单的文档开始练习,逐步掌握更高级的功能。祝你LaTeX写作顺利!如果有任何问题,欢迎在评论区留言交流。关键词:TeXstudio安装、LaTeX环境配置、中文LaTeX、TeX Live、学术论文写作更新日期:2025年10月。

weixin_51241407的博客 4506

起初对计算机一窍不通,却写出亚马逊霸榜 AI 神书,前英伟达工程师 Chip Huyen 的跨界人生!

几年后,她重返校园时,她对计算机科学最初并无好感,在她的想象中,那是一种封闭在地下室里、与世界隔绝的孤独劳动。”她的课堂更像一场探索之旅,从最简单的方案出发,逐步构建复杂系统,训练学生真正的工程思维。她的博客上,还列着一份“去世前要完成的 100 件事”的清单,理性地规划人生,又用幽默对抗不确定性。她的童年没有计算机,也没有编程课程,只有自然的辽阔与探索的冲动。借此机会,我们也邀请到了 Chip 做客图灵直播间,与读者面对面分享她的创作初衷、技术洞见,以及她如何看待系统、技术与人的关系。

图灵教育 136

WINCC8.1工业组态软件安装与授权配置指南

SCADA系统作为工业自动化控制的核心平台,通过实时数据采集与监控实现生产流程可视化。WINCC作为西门子旗舰级组态软件,其8.1版本凭借稳定的运行时环境在汽车制造、流程工业等领域广泛应用。本文从工业控制系统软件安装规范切入,重点解析WINCC8.1与Automation License Manager的协同工作原理,详细说明包括系统环境检查、安装包校验、授权文件配置等关键技术环节。针对工程实施中常见的内存配置不足、授权管理器报错等典型问题,提供经过现场验证的解决方案,特别适用于需要进行产线监控系统升级维护

cqwf95925的博客 1657

连接HP C7000 OA管理口操作文档

必备工具:1台便携式笔记本电脑、1根网线 2、 在C7000机箱背面找到 OA管理模块,如图:图标1和2为OA主备管理模块 将网线一端接至左边的OA管理网口,另一端接至便携式笔记本电脑网口,如图下位置: 在C7000液晶面板下查看OA管理口地址,如图,按下液晶面板的OK按钮 然后按下▼按钮调至Enclosure Info这一项后,按下OK按钮,输出界面如图:可以看到当前Active的OA管理口IP地址 比如显示地址为172.16.25.30,则个人笔记本电脑则配置172.16...

马晓援的博客 6014

关于AI 落地的 9 本硬核书

生产级 AI 工程栈全景:数据管线/版本、部署、监控、扩缩容;强调系统思维与工程指标,解决“模型好看但线上不稳”的痛点。数据漂移、再训练、可靠性与监控、生命周期管理;教你在约束与权衡中把系统“养活、养稳、养久”。

967

把 SAP 配置当成一张地图:用 IMG 把实施、变更与治理串成一条清晰的路

摘要 SAP IMG(Implementation Guide)是SAP实施的核心导航体系,它将客户需求转化为系统配置,提供结构化路径和文档化支持。IMG不是简单的菜单树,而是包含业务落地路径、标准化配置活动和文档化知识的实施语言。通过三种视图(Reference、Enterprise、Project)解决不同管理问题,其中Project IMG尤其重要,可管理项目范围、分工和进度。实际工作中应通过SPRO事务码访问IMG,将探索与执行分开管理。案例显示,跨国企业通过Project IMG可有效控制组织架构

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 230

【大模型入门书籍推荐】《AI_Engineering》——AI工程师必读:构建大模型应用的实战指南!

《AI Engineering》系统讲解如何构建高质量AI系统,涵盖提示工程、RAG、微调等基础模型适配技术,以及评估、幻觉检测、性能优化等关键领域。作者Chip Huyen提供原则导向的实用方法论,帮助开发者从"能用"AI到"会构建"可靠、高效的AI应用。本书是AI工程领域的必读之作,适合AI工程师、机器学习工程师等技术人员。

libaiup的博客 1028

YOLOv11改进 | Conv/卷积篇 | 轻量化多尺度异构卷积(MSHC)优化YOLOv11精度(全网独家首发)

本文介绍了Hype-YOLO提出的MANet结构,这是C3、C2f、C3k2的升级版,能显著增强特征提取能力。MANet整合了DSConv和C2f结构,通过多分支异构设计提升梯度流动和特征语义深度。文章详细解析了MSHC模块的原理,包括其多尺度并行建模、通道混洗等核心机制,并提供了完整的代码实现和训练教程。实验表明,Hype-YOLO的精度优于YOLOv11。该结构在保持轻量化的同时,通过异构分支设计实现了更丰富的特征表达,适用于目标检测等视觉任务。

Snu77的博客 955

YOLOv11 | 一文带你深入理解ultralytics最新作品yolov11的创新 | 训练、推理、验证、导出 (附网络结构图)

ultralytics发布了最新的作品YOLOv11,这一次YOLOv11的变化相对于ultralytics公司的上一代作品YOLOv8变化还是很大的(YOLOv9、YOLOv10均不是ultralytics公司作品),其中改变的位置涉及到C2f变为C3K2,在SPPF后面加了一层类似于注意力机制的C2PSA,还有一个变化大家从yaml文件是看不出来的就是它的检测头内部替换了两个DWConv,在损失函数方面就没有变化了还是采用的CIoU作为边界框回归损失,下面带大家深入理解一下ultralytics最新作品

Snu77的博客 18万+

构建工业级的LLM应用程序

近期被一篇名叫《Building LLM applications for production》的文章吸引,作者叫Chip Huyen,一名作者和和计算机科学家,越南人。她是Claypot AI的联合创始人,这是一个实时机器学习平台。之前,曾在 NVIDIA、Snorkel AI、Netflix 和 Primer 构建了机器学习工具。作者毕业于斯坦福大学,《设计机器学习系统》是亚马逊网站人工智能...

u013527895的博客 638

人形机器人开源资源大盘点(四):硬件开源平台

开源人形机器人平台推动技术民主化 本期聚焦四大开源人形机器人平台:斯坦福的ToddlerBot以6000美元低成本实现30自由度运动,支持仿真到现实的零样本迁移;法国Reachy2被HuggingFace收购,融合开源AI与硬件,适配医疗、工业等场景;国内OriginMan基于ROS2全开源,集成大模型能力,支持深度改造;OAN框架则为经典NAO机器人注入开源活力,扩展交互功能。这些平台通过不同路径降低研发门槛,推动人形机器人技术走向开放共享的未来。

Studying…… 370

英伟达小姐姐开源 Python 隐藏技巧,上了 GitHub 热榜!

公众号关注“GitHubDaily”设为 “星标”,每天带你逛 GitHub!转自量子位,作者栗子常常发资源的英伟达工程师小姐姐 Chip Huyen,又发射了一套P...

GitHubDaily 1030

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

python40个常用技巧_Python 有哪些让你相见恨晚的技巧?

常常发资源的英伟达工程师小姐姐Chip Huyen,又发射了一套Python隐藏功能合集。里面都是她“从前没发现,或者从前不太敢用”的机器学习技巧,有notebook可以直接跑。合集名叫python-is-cool,推特宣布之后不到半天,已经收获了2400+赞。那么,这份令人奔走相告的资源,到底长什么样子?隐藏技巧五大类就像开头提到的:这里的功能,要么是小姐姐花了很久才找到的,要么是曾经让她瑟瑟发...

weixin_36326528的博客 188

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

网传2020校招传统大厂白菜价

网传2020校招传统大厂白菜价:(友情提醒:请将手机旋转90度横屏观看)推荐阅读 这只狗,其实是猫变的:“撸猫神器”StarGAN v2来了! 一句f**k代码自动纠错,美女程序员...

机器学习算法与Python学习 834

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

2025智能体元年!斯坦福科学家8000字讲清所有要点

凭借此功能,智能体可作为编码助手、数据分析师,甚至研究助手,编写代码开展实验和撰写报告。在对比AI智能体和人类操作员时,要记住人类和AI的工作方式差异很大,对人类高效的方法,对AI可能并不高效,反之亦然。Chip Huyen,对这一热门领域进行了深入研究,系统阐释了智能体的概念,分析了智能体在工具使用、任务规划、反思纠错等方面的技术要点,探讨了智能体可能出现的失败模式与相应的评估方法。在每个步骤中,智能体都要解释其思维过程(即做计划),随后采取行动,再分析行动产生的结果(即反思),如此循环,直至任务完成。

具身机器人和通用AI 1040

前英伟达工程师 Chip Huyen 的 AI 学习法则:别再犹豫学什么,先做点什么!

为什么我每次都得重复?她在给企业做 AI 工作坊时,常常遇到没有编程背景的员工,他们一开始很怯场,但在 AI 编码助手的帮助下,仅仅几个小时就能拼出一个能跑的应用。为此,在她的新书《AI Engineering》中,她专门整理了一份 AI 学习资源清单,希望帮助初学者在动手的同时,也能理解自己在用的每一个工具。” 她说:“他们不仅会写代码,还懂整个系统的运作逻辑,能看到问题的上下游,能真正解决问题。她说:“做什么不重要,重要的是你能从头到尾亲自完成它,从一个想法出发,到真正部署,让别人能真正用起来。

图灵教育 237

读《AI Engineering:基于基础模型构建应用》之核心精华总结

功能指标:如客服机器人的“问题解决率”;质量指标:如生成文本的“事实准确率”;效率指标:如推理延迟(P90 < 200ms);安全指标:如毒性输出占比(< 0.1%)。同时需设定“有用性阈值”——指标需达到何种水平才可用(如事实准确率>90%才上线)。将模型、数据、优化技术整合为“稳定、可靠、可扩展”的应用,需关注“架构设计”与“用户反馈闭环”。书中最后一章提供了端到端架构方案与反馈设计指南,完成了从“技术”到“产品”的落地闭环。

小程故事多的博客 1878

【2022新书】设计机器学习系统:生产部署应用的迭代过程,Chip Huyen编著

来源:专知 本文约1600字,建议阅读5分钟这本书是为任何想要利用ML来解决现实问题的人准备的。许多教程向您展示了如何从构思到部署模型开发ML系统。但是随着工具的不断变化,这些系统很快就会过时。如果没有一个有意的设计来将组件组合在一起,这些系统将成为技术上的负担,容易出错并很快崩溃。在这本书中,Chip Huyen为设计真实世界的ML系统提供了一个框架,可以快速部署、可靠...

数据派THU 785

RNN失宠、强化学习风头正劲,ICLR 2019的八点参会总结

上周,深度学习顶会 ICLR 2019 在新奥尔良落幕。毕业于斯坦福大学、现就职于英伟达的计算机科学家Chip Huyen参加了这次会议,并总结出了参会的8点感受。选自huyenchip,作者:Chip Huyen,机器之心编译。1. 包容性ICLR 2019 组织者强调包容性在AI中的重要性,前两个主要演讲——Sasha Rush的开场致辞和Cynthia Dwork的受邀演讲——都是有关公平和...

weixin_34228662的博客 353
上一篇: 菜鸟都能看懂的爬虫Scrapy入门指南
下一篇: 震惊,区块链岗位薪资这么高,Python爬取300个区块链岗位深度分析,龙虎榜出炉!...
菜鸟学Python
博客等级 码龄9年 8086粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值