H. Gu

H. Gu

I build web tools that turn messy public data into maps, schedules, and scores.我做网页工具,把杂乱的公开数据变成地图、课表和评分。

Computer Science at UW–Madison, class of 2029.威斯康星大学麦迪逊分校(UW–Madison)计算机科学专业,2029 届。

Open to Summer 2027 SWE and ML internships正在寻找 2027 年夏季的软件工程和机器学习实习

Madison, Wisconsin
Contour interval 5 m
威斯康星州麦迪逊
等高距 5 米
Bascom Hill
  1. A Madison to Reykjavik to Paris flight drawn on the satellite globe in Route Animator

    01 / 06 · Web app网页应用

    The paid route-video makers want an account, a watermark and an export limit. This one is a single HTML file.收费的路线视频工具要注册账号、加水印、限制导出。这个工具只是一个 HTML 文件。

    MapLibre GL, Canvas 2D, in-browser video captureMapLibre GL、Canvas 2D、浏览器内录制视频

    route-animator · How it works运作方式

    • Flies a vehicle along a multi-stop route over a satellite globe and records it with MediaRecorder. No server ever sees the clip.让交通工具沿着多站路线飞过卫星地球,并用 MediaRecorder 录制,视频不会经过任何服务器。
    • Every vehicle is drawn top-down on canvas, because emoji are three-quarter views and read wrong from directly overhead.每种交通工具都用 canvas 俯视绘制,因为 emoji 是四分之三侧视图,从正上方看会显得别扭。
    • Altitude follows leg-local time rather than distance; keying it to distance let the climb eat a third of the flight.高度按每段航程内的时间变化,而不是按距离;按距离算的话,爬升会吃掉航程的三分之一。
    cruise ground leg start leg end 28% 38% keyed to time (shipped) keyed to eased distance 巡航 地面 航段起点 航段终点 28% 38% 按时间计算(已采用) 按缓动距离计算
    Altitude over one flying leg, plotted from route-animator’s own altOf(). Keyed to eased distance, the plane sits on the runway until 18% of the leg and is still climbing at 38%.单段航程的高度曲线,由 route-animator 自己的 altOf() 绘出。若按缓动后的距离计算,飞机在航程的 18% 之前一直停在跑道上,到 38% 时仍在爬升。
  2. Map of rentals near the UW–Madison campus, with filters and a price-colored pin for each property

    02 / 06 · Web app, data网页应用 · 数据

    605 rentals near campus on one map, every value labeled by where it came from, every gap turned into a question.605 处校园周边的租房放在一张地图上,每个数值都标明来源,每处缺失都变成一个要问的问题。

    Leaflet, vanilla JS, Python collectors, Madison Metro GTFSLeaflet、原生 JS、Python 采集脚本、Madison Metro GTFS

    • 2,988 units and floor plans from 67 landlords, merged from their own sites and the UW Off-Campus Housing service.2,988 个单元和户型,来自 67 位房东,由他们自己的网站和 UW Off-Campus Housing 服务合并而成。
    • Filters for bedrooms, price per person or per unit, distance from a landmark or your own saved places, utilities, pets and laundry. 305 Madison Metro stops come from the city’s GTFS feed.可按卧室数、每人或整套的价格、到地标或自己保存的地点的距离、水电、宠物和洗衣筛选。305 个 Madison Metro 站点来自市政府的 GTFS 数据。

    Isthmus Rentals · How it works运作方式

    • Every value carries its source: the landlord’s site, the UW list, text read out of a description, or nothing. Unknown stays unknown instead of becoming a plausible guess.每个值都带着来源:房东网站、UW 列表、从描述里读出的文字,或者没有来源。未知就保持未知,不会被一个看似合理的猜测替代。
    • Landlords quote rent per person or per unit and rarely say which. Each price is tagged with its evidence; when none settles it, the price is read as whichever puts one person between $800 and $1,500.房东报价有的按人、有的按整套,而且很少说明是哪种。每个价格都标有依据;依据都不成立时,就按能让一个人的租金落在 $800 到 $1,500 之间的那种理解来读。
    • Phone and email of individual landlords who appear only on the UW list stay off the page; it links to that listing instead.只出现在 UW 列表上的个人房东,电话和邮箱不会出现在页面上,页面改为链接到那条列表。
    landlord site UW list read from description not stated (%) Deposit 75% Utilities 41% Pets 41% Parking 32% Laundry 28% Air conditioning 65% Furnished 85% 房东网站 UW 列表 从描述中读出 未说明 (%) 押金 75% 水电 41% 宠物 41% 停车 32% 洗衣 28% 空调 65% 带家具 85%
    Where seven fields came from across all 605 properties. Solid is a source, dashed is none. Furnished is unknown for 85% of them, and the map says so.七个字段的来源分布,覆盖全部 605 处房源。实线是有来源,虚线是没有。有 85% 的房源不知道有没有家具,地图如实标出。

    Isthmus Rentals · What the data says数据说了什么

    • Closer costs more, and not just because of bedrooms: median rent per person is $1,200 within 0.4 mi of Bascom Hall and $978 at 1–1.25 mi.离校园越近越贵,而且不只是卧室数的缘故:Bascom Hall 0.4 英里内的人均租金中位数是 $1,200,在 1 到 1.25 英里处是 $978。
    • Each property is one point, its median listing; shared rooms are left out. The rank correlation is −0.29 once each rent is divided by the median for its bedroom count (permutation p < 0.001).每处房源只算一个点,取它的中位数报价;合租间不计入。把每个租金除以同卧室数的中位数之后,秩相关为 −0.29(置换检验 p < 0.001)。
    $1,000 $1,500 $2,000 0 0.5 1 1.5 2 miles from Bascom Hall $1,200 $978 rank correlation −0.29, n = 403 $1,000 $1,500 $2,000 0 0.5 1 1.5 2 距 Bascom Hall 的英里数 $1,200 $978 秩相关 −0.29,n = 403
    Rent per person for 403 properties with a listed 1–5 bedroom rent for 2026–27 or 2027–28. The blue line is the median of each distance band (n = 29, 116, 105, 67, 38, 22, 26).403 处房源的人均租金,仅含 2026–27 或 2027–28 学年、1–5 间卧室且有标价的报价。蓝线是各距离段的中位数(n = 29、116、105、67、38、22、26)。
  3. Madison Eats: a grid of photo cards for restaurants, each with an overall score, its rank within its cuisine and a few highlights

    03 / 06 · Web app, data网页应用 · 数据

    2,292 places to eat in Dane County, scored from six rating sources, with the delivery apps that carry each one.2,292 家戴恩县的餐饮店,按六个评分来源打分,并标出各家上了哪些外卖平台。

    Python collectors, vanilla JS, Leaflet, Cloudflare WorkersPython 采集脚本、原生 JS、Leaflet、Cloudflare Workers

    • Photo cards, a map and a delivery-app tab, searchable in English or Chinese, with filters for cuisine, occasion and open now. Each place shows highlights such as its rank within its cuisine.照片卡片、地图和外卖平台页,支持中英文搜索,可按菜系、场合和营业中筛选。每家店会显示几条亮点,比如它在本菜系中的排名。
    • 1,160 places can be ordered on at least one app: DoorDash 859, Uber Eats 817, Grubhub 539, EatStreet 274, Toast 182.1,160 家至少能在一个平台下单:DoorDash 859、Uber Eats 817、Grubhub 539、EatStreet 274、Toast 182。

    Madison Eats · How it works运作方式

    • County food licences and OpenStreetMap give the base list. Collectors for six rating sources, county inspections and r/madisonwi are linked to it by name and address.县里的食品经营许可和 OpenStreetMap 构成基础清单。六个评分来源、县卫生检查和 r/madisonwi 的采集结果,按名称和地址关联到清单上。
    • Sources grade on different curves (Toast averages 4.8 stars, EatStreet 4.0), so each rating becomes a percentile among Madison places on the same app, and places with few ratings are pulled toward the middle.各来源的打分尺度不同(Toast 平均 4.8 星,EatStreet 4.0),所以每个评分会换算成它在同一平台上麦迪逊店铺中的百分位,评分很少的店会被拉向中间。
    • The public page carries no data. A Cloudflare Worker returns one page or one place at a time, behind a human check, daily quotas and a request log.公开页面里没有数据。Cloudflare Worker 一次只返回一页或一家店,并设有人机验证、每日配额和请求日志。
    Base listlicences + OSM Rating sources6 sources, stars + counts Other signalsinspections, Reddit linkmatch stores scorepercentile per app Guarded Workerone page at a time Python, on my machine Cloudflare 基础清单执照+OSM 评分来源6 个来源:星级与评分数 其他信号卫生检查、Reddit 关联匹配店铺 打分按各应用算百分位 受保护的 Worker一次一页 Python,在我的电脑上运行 Cloudflare
    From collectors to the page. Collection and scoring live in a private repository; the public one holds the page only.从采集到页面。采集和打分在私有仓库里,公开仓库只放页面。

    Madison Eats · What the data says数据说了什么

    • The sources agree only loosely. Rank correlations between pairs of sources run from 0.26 to 0.61 for the same places, and Uber Eats and Toast are uncorrelated. The score gives a source more weight when it agrees with the others.各来源之间只是大致一致。同一批店铺在每两个来源之间的秩相关从 0.26 到 0.61,Uber Eats 和 Toast 之间几乎不相关。打分时,和其他来源越一致的来源权重越高。
    • Checked against a signal left out of the score, a random award winner outranks a random non-winner 66% of the time with the award bonus removed (168 winners).用一个未参与打分的信号来检验:去掉奖项加分后,随机挑一家获奖店和一家未获奖店,获奖店排名更靠前的概率是 66%(168 家获奖店)。
    Google DoorDash Uber Eats Grubhub EatStreet DoorDash 0.59 n=693 Uber Eats 0.42 n=652 0.59 n=601 Grubhub 0.43 n=469 0.50 n=468 0.44 n=449 EatStreet 0.61 n=188 0.56 n=150 0.47 n=147 0.33 n=126 Toast 0.40 n=84 0.49 n=44 −0.04 n=44 0.26 n=31 n < 20 50 or more places fewer than 50 Google DoorDash Uber Eats Grubhub EatStreet DoorDash 0.59 n=693 Uber Eats 0.42 n=652 0.59 n=601 Grubhub 0.43 n=469 0.50 n=468 0.44 n=449 EatStreet 0.61 n=188 0.56 n=150 0.47 n=147 0.33 n=126 Toast 0.40 n=84 0.49 n=44 −0.04 n=44 0.26 n=31 n < 20 50 家及以上 少于 50 家
    Rank correlation of star ratings between pairs of sources, over the 2,292 places shown. n is the number of places rated on both.同一批 2,292 家显示的店铺,每两个来源之间星级的秩相关。n 是两边都有评分的店铺数。
  4. Course list with a grade band across the top, filter lenses, and a GPA bar, trend and open seats for each course

    04 / 06 · Web app + API网页应用 + API

    Grade history, instructor GPAs and seats for all 4,438 Fall 2026 UW–Madison courses, plus a timetable planner that knows your degree.4,438 门 Fall 2026 UW–Madison 课程的成绩历史、教师 GPA 和座位,还有一个了解你学位要求的课表规划器。

    Vanilla JS, Cloudflare Workers and Workers AI, SQLite, GitHub Actions CI原生 JS、Cloudflare Workers 与 Workers AI、SQLite、GitHub Actions CI

    • A sticky A–F band morphs into whichever course you hover, with ticks marking the campus-wide split, so every row reads against the baseline.顶部的 A–F 条会变形成你悬停的那门课的分布,刻度线标出全校的整体分布,每一行都能和基准比较。
    • Lenses such as Instructor matters, a dot plot of every instructor’s GPA, saved plans, side-by-side compare, and an assistant that can search courses and build a timetable.有 教师影响大 这样的筛选视角、每位教师的 GPA 点图、保存的计划、并排对比,以及能搜课、能排课表的助手。

    uw-course-lookup · The planner课表规划器

    • Pick one of 212 degree programs and drop in your transcript or DARS. The file is read in the browser, not uploaded, and the planner shows what is done, in progress and left.选一个学位专业(共 212 个),导入成绩单或 DARS。文件只在浏览器里读取,不会上传,规划器会显示哪些已完成、哪些在修、哪些还差。
    • It searches for conflict-free timetables over each course’s real enrollment packages (a lecture plus its discussion), honoring early starts, days off and seat availability, and returns six options with an .ics export.它在每门课真实的选课组合(一节讲课加配套的讨论课)上搜索没有冲突的课表,遵守不早起、空出整天、座位是否有空等偏好,给出六个方案,并能导出 .ics。
    • If the request is impossible it says why, for example two required courses that always overlap.如果要求无法满足,它会说明原因,比如两门必修课的时间总是重叠。
    Transcript or DARSread in the browser Degree rules212 programs Still neededrequirement blocks Course packageslecture + discussion Solverdepth-first search Six timetablesconflicts ruled out 成绩单或 DARS在浏览器中读取 学位要求212 个专业 还差什么要求模块 课程组合讲课+讨论课 求解器深度优先搜索 六个课表已排除冲突
    The solver is a plain module with no DOM or network access, so the page, a Web Worker and the Node tests run the same code. It returns the best result it found, not a proof of optimality.求解器是一个纯模块,不碰 DOM 和网络,所以页面、Web Worker 和 Node 测试跑的是同一份代码。它给出的是找到的最好结果,而不是最优性证明。

    uw-course-lookup · How it works运作方式

    • The page holds no course data. A Cloudflare Worker serves one page of results at a time to a browser that has passed an invisible human check.页面本身不含课程数据。Cloudflare Worker 一次只给通过了隐形人机验证的浏览器返回一页结果。
    • Each visitor and each network has a daily allowance counted in course records. Requests are rate-limited and logged, never the assistant conversation, and CI fails if a private file is committed.每位访客和每个网络每天有一份按课程条数计算的额度。请求会被限流和记录(从不记录助手对话),而且只要有私有文件被提交,CI 就会失败。
    • No endpoint returns the dataset in bulk. That raises the cost of copying everything; it cannot prevent it.没有任何接口能一次返回整套数据。这会抬高整体拷贝的成本,但并不能杜绝。
    Public sourcesMadGrades, Enroll, Reddit, chat build_db.pySQLite, never committed Cloudflare Workersession, quota, rate limit Page on GitHub Pageshuman check, then 60 rows deploy signed session on every call 公开数据源MadGrades、Enroll、Reddit、聊天 build_db.pySQLite,从不提交 Cloudflare Worker会话、配额、限流 GitHub Pages 页面先过人机验证,再取 60 行 部署 每次调用带签名会话
    Build and serve. The data files are gitignored; the page, the Worker and the pipeline are public.构建与服务。数据文件被 gitignore;页面、Worker 和数据流水线是公开的。

    uw-course-lookup · What the data says数据说了什么

    • Instructor beats course. In MATH 320 the most and least generous instructors, each with 200+ graded students, sit 1.67 GPA points apart on the same syllabus.教师比课程更重要。在 MATH 320 里,最宽松和最严格的教师(各有 200 多名有成绩的学生)在同一份大纲下 GPA 相差 1.67 分。
    • How often a course comes up in chat says nothing about its grade (ρ = −0.07, n = 215). The tone of its Reddit threads does (ρ = +0.43, n = 220).一门课在群聊里被提到的次数和它的成绩无关(ρ = −0.07,n = 215),而它在 Reddit 帖子里的口碑有关(ρ = +0.43,n = 220)。
    2.0 2.5 3.0 3.5 4.0 gap MATH 320 1.67 MATH 340 1.64 MATH 234 1.46 MATH 467 1.42 PSYCH 202 1.39 MATH 541 1.32 ASTRON 103 1.31 PSYCH 210 1.25 lowest instructor highest instructor 2.0 2.5 3.0 3.5 4.0 差距 MATH 320 1.67 MATH 340 1.64 MATH 234 1.46 MATH 467 1.42 PSYCH 202 1.39 MATH 541 1.32 ASTRON 103 1.31 PSYCH 210 1.25 最低的教师 最高的教师
    The eight largest gaps between the lowest and highest instructor GPA in one course, among 290 tracked courses. Each instructor has at least 30 graded students.在 290 门被跟踪的课程中,同一门课里最低与最高教师 GPA 相差最大的八门。每位教师至少有 30 名有成绩的学生。
  5. Photo organizer web UI showing a cluster of coastal landscape photos

    05 / 06 · Python, CLIPPython、CLIP

    Sorts a 310 GB travel photo library into people, scenery, and per-trip clusters, entirely on a local GPU. Nothing is uploaded.在本地 GPU 上,把 310 GB 的旅行照片库分成人像、风景和按旅行划分的聚类,全程不上传任何东西。

    CLIP ViT-B/32, HDBSCAN, PyTorch with CUDA, FastAPI. 7,346 files, 0 errors.CLIP ViT-B/32、HDBSCAN、使用 CUDA 的 PyTorch、FastAPI。7,346 个文件,0 个错误。

    • Zero-shot classifies people vs. scenery, then clusters scenery by embedding into trip-scale groups per region.用零样本分类区分人像和风景,再按嵌入向量把风景聚成每个地区的旅行级分组。
    • RAW and XMP sidecars follow their JPEG through every move; the source tree is copy-only and never mutated.RAW 文件和 XMP 附属文件会跟着对应的 JPEG 一起移动;源目录只做复制,从不改动。

    photo-organizer · How it works运作方式

    • Embedding cache keyed by path + size + mtime, so a rerun over 7k files costs minutes instead of hours.嵌入缓存以路径、大小和修改时间为键,所以对 7 千个文件重跑只要几分钟,而不是几小时。
    • Local FastAPI web UI for browsing, renaming, and re-filing, reachable from a phone over LAN.本地 FastAPI 网页界面,可以浏览、改名和重新归档,还能通过局域网在手机上访问。
    7,346 files CLIP ViT-B/32cached by path, size, mtime people or sceneryzero-shot text prompts scenery only trip clusters misc 7,346 个文件 CLIP ViT-B/32按路径、大小、修改时间缓存 人像或风景零样本文本提示 仅风景 旅行聚类 其他
    Schematic. Only scenery is clustered; photos HDBSCAN can’t place in any trip go to a misc folder.示意图。只有风景会被聚类;HDBSCAN 无法归入任何旅行的照片会放进 misc 文件夹。
  6. DataMap showing a choropleth of 2025 GDP by US state

    06 / 06 · Web app网页应用

    Paste a column of numbers, get a choropleth whose color scale you can defend in a code review.粘贴一列数字,就得到一张分级统计地图,它的色阶经得起代码评审的追问。

    OKLCH ramps, quantile breaks, runs offline, Playwright testsOKLCH 色阶、分位数分级、可离线运行、Playwright 测试

    • Diverging scales default to symmetric quantile breaks; equal-interval was tried first and collapsed real county data into a single neutral class.发散色阶默认使用对称分位数分级;一开始用的等距分级,会把真实的县级数据压成同一个中性色类。
    • Ships with a rebuild pipeline that re-fetches World Bank, Census, and ISO-3166 sources and regenerates every dataset.自带重建流水线,重新抓取世界银行、人口普查局和 ISO-3166 的数据,并重新生成所有数据集。
    blue teal orange L 0.89 0.81 0.72 0.63 0.54 0.45 0.37 蓝 青 橙 L 0.89 0.81 0.72 0.63 0.54 0.45 0.37
    Seven-class ramps exactly as DataMap’s color.js builds them. Every hue reuses one lightness track, so each column shares an L value.七级色阶,与 DataMap 的 color.js 生成的完全一致。每种色相都沿用同一条明度轨道,所以同一列的 L 值相同。

Smaller projects其他小项目

  • Model Chess in items mode: a board of AI-model pieces mid-game, a strength ladder from ELIZA to Claude, and the move list

    Web game网页游戏

    Model Chess

    Chess where every piece is an AI model. Items mode, a workbench, and a rules engine checked against perft counts.每个棋子都是一个 AI 模型的国际象棋。有道具模式、工作台,规则引擎通过了标准 perft 计数验证。

    Private repository私有仓库

    Piece silhouettes: cburnett (Colin M.L. Burnett), via lichess.棋子轮廓:cburnett(Colin M.L. Burnett),来自 lichess。

  • Game, TypeScript游戏 · TypeScript

    Dafeiyu

    A raising game and a Survivors-style roguelike on a pure rules engine and bot simulator. 239 tests; Chinese UI.一款养成游戏和一款类《吸血鬼幸存者》的肉鸽,建立在纯规则引擎和机器人模拟器之上。239 个测试,界面为中文。

    Private repository私有仓库

    Fan-made and non-commercial; not affiliated with DeepSeek.同人作品,非商业;与 DeepSeek 无关。

  • Chrome extensionChrome 扩展

    geo-spoof

    Answers the Geolocation API with a point you pick用你在地图上选的点来回答 Geolocation API

  • Chrome extensionChrome 扩展

    tophat-watch

    Alerts you when a Top Hat question opensTop Hat 一开题就提醒你

  • Cloudflare Worker moduleCloudflare Worker 模块

    webgrs-guard

    Shared request guard for my data sites: Turnstile sessions, daily quotas, rate limits, a D1 request log.我的数据站共用的请求防护:Turnstile 会话、每日配额、限流、D1 请求日志。

    Private repository私有仓库

  • Video pipeline视频流水线

    video-studio

    Storyboard JSON to a finished showcase video: scripted capture, local narration, Remotion.从分镜 JSON 到成品展示视频:脚本化录屏、本地配音、Remotion 合成。

    Local project, not published本地项目,未发布

Decisions I'd defend我会坚持的决定

Show the gap, don't fake the data.如实展示缺口,不要伪造数据。

Connecticut replaced its eight counties with planning regions in 2022, and the two do not partition each other. DataMap renders the old counties as no data rather than inventing a crosswalk that would look correct and be wrong.康涅狄格州在 2022 年用规划区取代了原来的八个县,两套边界并不互相对应。DataMap 把旧的县显示为 无数据,而不是编一张看起来正确、实际上错误的对照表。

Aggregates leave the machine; records don't.离开这台电脑的是汇总,不是原始记录。

The course tool is built on a private chat archive. Only anonymized counts are published; the archive itself is gitignored and stays on one disk. A useful dataset is not a licence to ship it.课程工具建立在一份私人聊天记录之上。公开的只有匿名化的计数,记录本身被 gitignore,只留在一块硬盘上。数据有用,并不意味着可以随便发布。

Public repos are original work only.公开仓库只放原创作品。

Graded coursework stays off GitHub, no exceptions. What's public is what I designed, and I can walk through every line of it.计分的课程作业不上 GitHub,没有例外。公开的都是我自己设计的东西,每一行我都能讲清楚。

Tools used in these projects: MapLibre GL, Canvas 2D, MediaRecorder, WebGL, Leaflet, Cloudflare Workers, Cloudflare Turnstile, Chrome MV3, Playwright, D3, TopoJSON, OKLCH, SVG, Stable Diffusion XL, Remotion, Whisper, SQLite, Workers AI, GitHub Actions, pdf.js, Cloudflare D1, PyTorch, open_clip, HDBSCAN, FastAPI, TypeScript, React, Vite, Electron, OffscreenCanvas. Data sources: Esri World Imagery, Madison Metro GTFS, OpenStreetMap, Nominatim, Public Health Madison & Dane County, ntfy, World Bank, US Census, ISO 3166, MadGrades API, Course Search & Enroll API, Reddit via Firecrawl, USGS 3DEP.这些项目用到的工具:MapLibre GL、Canvas 2D、MediaRecorder、WebGL、Leaflet、Cloudflare Workers、Cloudflare Turnstile、Chrome MV3、Playwright、D3、TopoJSON、OKLCH、SVG、Stable Diffusion XL、Remotion、Whisper、SQLite、Workers AI、GitHub Actions、pdf.js、Cloudflare D1、PyTorch、open_clip、HDBSCAN、FastAPI、TypeScript、React、Vite、Electron、OffscreenCanvas。数据来源:Esri World Imagery、Madison Metro GTFS、OpenStreetMap、Nominatim、Public Health Madison & Dane County、ntfy、World Bank、US Census、ISO 3166、MadGrades API、Course Search & Enroll API、Reddit via Firecrawl、USGS 3DEP。

Stack技术栈

Languages语言
Python, JavaScript, TypeScript, Java, SQL / SQLite, Bash
ML机器学习
PyTorch, open_clip, HDBSCAN, NumPy, Stable Diffusion XL, Whisper
Web
Cloudflare Workers (D1, Turnstile), FastAPI, vanilla JS, HTML/CSS
Tooling工具
Git, Playwright, Remotion, Linux over SSH, CUDAGit、Playwright、Remotion、通过 SSH 使用 Linux、CUDA

Now近况October 20262026 年 10 月

Drilling刷题
About 150 pattern-based algorithm problems, grouped by technique rather than count.约 150 道按套路分类的算法题,按技巧分组,而不是只看数量。
Learning学习
Applied ML in depth: embeddings, retrieval, and the infrastructure around them.深入学习应用机器学习:嵌入向量、检索,以及它们周边的基础设施。
Coursework课程
CS 577 Introduction to Algorithms, CS 354 Machine Organization and Programming.CS 577 算法导论,CS 354 机器组织与编程。

Contact联系

微信二维码
有类似的需求都可以找我做哟~
网页、地图、浏览器插件、数据整理、各种小工具什么的都行 ヾ(≧▽≦*)o