详解 TensorFlow 内置的元图(MetaGraph)概念:那些隐藏在 .ckpt 文件里的秘密
TensorFlow 在早期的 1.x 版本中,模型存储通常依赖于 Checkpoint 文件(.ckpt)。许多初学者会疑惑:.ckpt 文件里存储的究竟是什么?为什么加载它还需要一个额外的 .meta 文件? 答案就是 元图(MetaG...
TensorFlow 在早期的 1.x 版本中,模型存储通常依赖于 Checkpoint 文件(.ckpt)。许多初学者会疑惑:.ckpt 文件里存储的究竟是什么?为什么加载它还需要一个额外的 .meta 文件? 答案就是 元图(MetaG...
什么是伪共享(False Sharing)? 在高性能并发编程中,我们经常追求最小化锁的竞争,但即使我们避免了锁,也可能遇到一个棘手的性能瓶颈:伪共享(False Sharing)。 伪共享是由于CPU缓存机制引起的现象。现代CPU有多级缓...
引言:为什么需要向量搜索? 传统的 Elasticsearch 搜索基于倒排索引,通过关键词匹配(BM25算法)来计算相关性。但在处理“语义”或“意图”时,这种方法往往力不从心。例如,搜索“大型犬”,但文档中只提到了“藏獒”。基于向量的语义...
在TensorFlow 2.x时代,我们广泛使用@tf.function来将Python函数编译成高效的TensorFlow计算图(Graph)。然而,当我们在这些被编译的函数内部尝试使用标准的Python print()函数来查看张量数值...
TensorFlow Serving (TFS) 是生产环境中部署模型的标准工具。在AI应用迭代速度极快的今天,如何在不中断服务的情况下更新模型(模型热更新,或零停机切换)成为了关键挑战。TFS通过其内置的模型版本管理机制,完美地解决了这个...
什么是 volatile? volatile 是并发编程中一个关键的修饰符,它保证了对共享变量操作的两大特性:可见性(Visibility) 和 有序性(Ordering)。 与 synchronized 锁机制不同,volatile 是一...
Kubernetes 的基于角色的访问控制(RBAC)是管理集群权限的核心机制。当我们引入新成员时,基于最小权限原则,通常需要限制他们的操作范围。本文将详细介绍如何创建一个 ServiceAccount,并使用 Role 和 RoleBin...
Kubernetes (K8s) 应用的部署往往涉及大量的 YAML 文件,管理和升级复杂。Helm 是 K8s 的包管理器,它通过 Chart 实现了应用定义的封装、版本控制和快速部署,极大地简化了 K8s 应用的管理流程,使其像在手机上...
Kubernetes(K8s)集群的生命周期管理是运维工作的核心。当我们需要对某个节点进行硬件升级、操作系统补丁或内核更新时,必须确保该节点上的应用Pod能够安全、平滑地迁移到其他健康节点上,从而实现零服务中断(Zero Downtime)...
在复杂的软件项目中,Bug 的发现往往滞后于其引入的时间。当一个 Bug 出现时,如果提交历史(Commit History)非常庞大,手动检查每一个 Commit 来确定是哪一次更改引入了问题,无疑是耗时且低效的。幸好,Git 提供了一个...