重要前提
安装AI Skills的关键前提是:必须科学上网,且开启TUN模式,这一点至关重要,直接决定安装能否顺利完成,在此郑重提醒三遍:科学上网,科学上网,科学上网。查看完整安装教程 →
histolab by k-dense-ai/claude-scientific-skills
npx skills add https://github.com/k-dense-ai/claude-scientific-skills --skill histolabHistolab 是一个用于处理数字病理学中全切片图像(WSI)的 Python 库。它能自动检测组织,从千兆像素图像中提取信息丰富的图块,并为深度学习流程准备数据集。该库支持多种 WSI 格式,实现复杂的组织分割,并提供灵活的图块提取策略。
uv pip install histolab
从全切片图像中提取图块的基本工作流程:
from histolab.slide import Slide
from histolab.tiler import RandomTiler
# 加载切片
slide = Slide("slide.svs", processed_path="output/")
# 配置图块提取器
tiler = RandomTiler(
tile_size=(512, 512),
n_tiles=100,
level=0,
seed=42
)
# 预览图块位置
tiler.locate_tiles(slide, n_tiles=20)
# 提取图块
tiler.extract(slide)
加载、检查和处理各种格式的全切片图像。
常见操作:
关键类: Slide
参考: 包含关于以下内容的全面文档:
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
references/slide_management.md示例工作流:
from histolab.slide import Slide
from histolab.data import prostate_tissue
# 加载样本数据
prostate_svs, prostate_path = prostate_tissue()
# 初始化切片
slide = Slide(prostate_path, processed_path="output/")
# 检查属性
print(f"Dimensions: {slide.dimensions}")
print(f"Levels: {slide.levels}")
print(f"Magnification: {slide.properties.get('openslide.objective-power')}")
# 保存缩略图
slide.save_thumbnail()
自动识别组织区域并过滤背景/伪影。
常见操作:
关键类: TissueMask, BiggestTissueBoxMask, BinaryMask
参考: references/tissue_masks.md 包含关于以下内容的全面文档:
locate_mask() 可视化掩码示例工作流:
from histolab.masks import TissueMask, BiggestTissueBoxMask
# 为所有组织区域创建组织掩码
tissue_mask = TissueMask()
# 在切片上可视化掩码
slide.locate_mask(tissue_mask)
# 获取掩码数组
mask_array = tissue_mask(slide)
# 使用最大组织区域(大多数提取器的默认设置)
biggest_mask = BiggestTissueBoxMask()
何时使用每种掩码:
TissueMask:多个组织切片,综合分析BiggestTissueBoxMask:单个主要组织切片,排除伪影(默认)BinaryMask:特定感兴趣区域,排除标注,自定义分割使用不同策略从大型 WSI 中提取较小区域。
三种提取策略:
RandomTiler: 提取固定数量的随机定位图块
n_tiles, seed 用于可复现性GridTiler: 以网格模式系统地提取组织上的图块
pixel_overlap 用于滑动窗口ScoreTiler: 基于评分函数提取排名最高的图块
scorer(NucleiScorer, CellularityScorer, 自定义)通用参数:
tile_size:图块尺寸(例如,(512, 512))level:用于提取的金字塔层级(0 = 最高分辨率)check_tissue:按组织内容过滤图块tissue_percent:最小组织覆盖率(默认 80%)extraction_mask:定义提取区域的掩码参考: references/tile_extraction.md 包含关于以下内容的全面文档:
locate_tiles() 预览图块示例工作流:
from histolab.tiler import RandomTiler, GridTiler, ScoreTiler
from histolab.scorer import NucleiScorer
# 随机采样(快速、多样化)
random_tiler = RandomTiler(
tile_size=(512, 512),
n_tiles=100,
level=0,
seed=42,
check_tissue=True,
tissue_percent=80.0
)
random_tiler.extract(slide)
# 网格覆盖(全面)
grid_tiler = GridTiler(
tile_size=(512, 512),
level=0,
pixel_overlap=0,
check_tissue=True
)
grid_tiler.extract(slide)
# 基于评分的选取(信息最丰富)
score_tiler = ScoreTiler(
tile_size=(512, 512),
n_tiles=50,
scorer=NucleiScorer(),
level=0
)
score_tiler.extract(slide, report_path="tiles_report.csv")
提取前始终预览:
# 在缩略图上预览图块位置
tiler.locate_tiles(slide, n_tiles=20)
应用图像处理过滤器进行组织检测、质量控制和预处理。
过滤器类别:
图像过滤器: 色彩空间转换、阈值化、对比度增强
RgbToGrayscale, RgbToHsv, RgbToHedOtsuThreshold, AdaptiveThresholdStretchContrast, HistogramEqualization形态学过滤器: 对二值图像进行结构操作
BinaryDilation, BinaryErosionBinaryOpening, BinaryClosingRemoveSmallObjects, RemoveSmallHoles组合: 将多个过滤器链接在一起
Compose:创建过滤器管道参考: references/filters_preprocessing.md 包含关于以下内容的全面文档:
示例工作流:
from histolab.filters.compositions import Compose
from histolab.filters.image_filters import RgbToGrayscale, OtsuThreshold
from histolab.filters.morphological_filters import (
BinaryDilation, RemoveSmallHoles, RemoveSmallObjects
)
# 标准组织检测管道
tissue_detection = Compose([
RgbToGrayscale(),
OtsuThreshold(),
BinaryDilation(disk_size=5),
RemoveSmallHoles(area_threshold=1000),
RemoveSmallObjects(area_threshold=500)
])
# 与自定义掩码一起使用
from histolab.masks import TissueMask
custom_mask = TissueMask(filters=tissue_detection)
# 对图块应用过滤器
from histolab.tile import Tile
filtered_tile = tile.apply_filters(tissue_detection)
可视化切片、掩码、图块位置和提取质量。
常见可视化任务:
参考: references/visualization.md 包含关于以下内容的全面文档:
locate_mask() 可视化掩码locate_tiles() 预览图块位置示例工作流:
import matplotlib.pyplot as plt
from histolab.masks import TissueMask
# 显示切片缩略图
plt.figure(figsize=(10, 10))
plt.imshow(slide.thumbnail)
plt.title(f"Slide: {slide.name}")
plt.axis('off')
plt.show()
# 可视化组织掩码
tissue_mask = TissueMask()
slide.locate_mask(tissue_mask)
# 预览图块位置
tiler = RandomTiler(tile_size=(512, 512), n_tiles=50)
tiler.locate_tiles(slide, n_tiles=20)
# 在网格中显示提取的图块
from pathlib import Path
from PIL import Image
tile_paths = list(Path("output/tiles/").glob("*.png"))[:16]
fig, axes = plt.subplots(4, 4, figsize=(12, 12))
axes = axes.ravel()
for idx, tile_path in enumerate(tile_paths):
tile_img = Image.open(tile_path)
axes[idx].imshow(tile_img)
axes[idx].set_title(tile_path.stem, fontsize=8)
axes[idx].axis('off')
plt.tight_layout()
plt.show()
快速采样多样化组织区域进行初步分析。
from histolab.slide import Slide
from histolab.tiler import RandomTiler
import logging
# 启用日志记录以跟踪进度
logging.basicConfig(level=logging.INFO)
# 加载切片
slide = Slide("slide.svs", processed_path="output/random_tiles/")
# 检查切片
print(f"Dimensions: {slide.dimensions}")
print(f"Levels: {slide.levels}")
slide.save_thumbnail()
# 配置随机图块提取器
random_tiler = RandomTiler(
tile_size=(512, 512),
n_tiles=100,
level=0,
seed=42,
check_tissue=True,
tissue_percent=80.0
)
# 预览位置
random_tiler.locate_tiles(slide, n_tiles=20)
# 提取图块
random_tiler.extract(slide)
完整组织覆盖以进行全切片分析。
from histolab.slide import Slide
from histolab.tiler import GridTiler
from histolab.masks import TissueMask
# 加载切片
slide = Slide("slide.svs", processed_path="output/grid_tiles/")
# 对所有组织切片使用 TissueMask
tissue_mask = TissueMask()
slide.locate_mask(tissue_mask)
# 配置网格图块提取器
grid_tiler = GridTiler(
tile_size=(512, 512),
level=1, # 使用层级 1 以加快提取速度
pixel_overlap=0,
check_tissue=True,
tissue_percent=70.0
)
# 预览网格
grid_tiler.locate_tiles(slide)
# 提取所有图块
grid_tiler.extract(slide, extraction_mask=tissue_mask)
基于细胞核密度提取信息最丰富的图块。
from histolab.slide import Slide
from histolab.tiler import ScoreTiler
from histolab.scorer import NucleiScorer
import pandas as pd
import matplotlib.pyplot as plt
# 加载切片
slide = Slide("slide.svs", processed_path="output/scored_tiles/")
# 配置评分图块提取器
score_tiler = ScoreTiler(
tile_size=(512, 512),
n_tiles=50,
level=0,
scorer=NucleiScorer(),
check_tissue=True
)
# 预览顶部图块
score_tiler.locate_tiles(slide, n_tiles=15)
# 提取并生成报告
score_tiler.extract(slide, report_path="tiles_report.csv")
# 分析分数
report_df = pd.read_csv("tiles_report.csv")
plt.hist(report_df['score'], bins=20, edgecolor='black')
plt.xlabel('Tile Score')
plt.ylabel('Frequency')
plt.title('Distribution of Tile Scores')
plt.show()
使用一致的参数处理整个切片集合。
from pathlib import Path
from histolab.slide import Slide
from histolab.tiler import RandomTiler
import logging
logging.basicConfig(level=logging.INFO)
# 一次性配置图块提取器
tiler = RandomTiler(
tile_size=(512, 512),
n_tiles=50,
level=0,
seed=42,
check_tissue=True
)
# 处理所有切片
slide_dir = Path("slides/")
output_base = Path("output/")
for slide_path in slide_dir.glob("*.svs"):
print(f"\nProcessing: {slide_path.name}")
# 创建切片特定的输出目录
output_dir = output_base / slide_path.stem
output_dir.mkdir(parents=True, exist_ok=True)
# 加载并处理切片
slide = Slide(slide_path, processed_path=output_dir)
# 保存缩略图以供审查
slide.save_thumbnail()
# 提取图块
tiler.extract(slide)
print(f"Completed: {slide_path.name}")
处理带有伪影、标注或异常染色的切片。
from histolab.slide import Slide
from histolab.masks import TissueMask
from histolab.tiler import RandomTiler
from histolab.filters.compositions import Compose
from histolab.filters.image_filters import RgbToGrayscale, OtsuThreshold
from histolab.filters.morphological_filters import (
BinaryDilation, RemoveSmallObjects, RemoveSmallHoles
)
# 定义用于激进伪影移除的自定义过滤器管道
aggressive_filters = Compose([
RgbToGrayscale(),
OtsuThreshold(),
BinaryDilation(disk_size=10),
RemoveSmallHoles(area_threshold=5000),
RemoveSmallObjects(area_threshold=3000) # 移除较大的伪影
])
# 创建自定义掩码
custom_mask = TissueMask(filters=aggressive_filters)
# 加载切片并可视化掩码
slide = Slide("slide.svs", processed_path="output/")
slide.locate_mask(custom_mask)
# 使用自定义掩码提取
tiler = RandomTiler(tile_size=(512, 512), n_tiles=100)
tiler.extract(slide, extraction_mask=custom_mask)
locate_mask() 预览掩码TissueMask,单个切片使用 BiggestTissueBoxMasklocate_tiles() 预览tissue_percent 阈值(通常为 70-90%)BiggestTissueBoxMask 而非 TissueMasktissue_percent 以减少无效图块尝试n_tilespixel_overlap=0pixel_overlap 进行滑动窗口方法tissue_percent 阈值check_tissue=Truetissue_percent 阈值n_tilestissue_percent此技能在 references/ 目录中包含详细的参考文档:
加载、检查和处理全切片图像的全面指南:
关于组织检测和掩码的完整文档:
图块提取策略的详细解释:
完整的过滤器参考和预处理指南:
全面的可视化指南:
使用模式: 参考文件包含深入信息,以支持本主要技能文档中描述的工作流。根据需要加载特定的参考文件以获取详细的实施指导、故障排除或高级功能。
每周安装次数
56
代码仓库
GitHub 星标数
17.3K
首次出现
2026年1月20日
安全审计
安装于
opencode49
codex48
gemini-cli47
cursor45
claude-code44
github-copilot44
Histolab is a Python library for processing whole slide images (WSI) in digital pathology. It automates tissue detection, extracts informative tiles from gigapixel images, and prepares datasets for deep learning pipelines. The library handles multiple WSI formats, implements sophisticated tissue segmentation, and provides flexible tile extraction strategies.
uv pip install histolab
Basic workflow for extracting tiles from a whole slide image:
from histolab.slide import Slide
from histolab.tiler import RandomTiler
# Load slide
slide = Slide("slide.svs", processed_path="output/")
# Configure tiler
tiler = RandomTiler(
tile_size=(512, 512),
n_tiles=100,
level=0,
seed=42
)
# Preview tile locations
tiler.locate_tiles(slide, n_tiles=20)
# Extract tiles
tiler.extract(slide)
Load, inspect, and work with whole slide images in various formats.
Common operations:
Key classes: Slide
Reference: references/slide_management.md contains comprehensive documentation on:
Example workflow:
from histolab.slide import Slide
from histolab.data import prostate_tissue
# Load sample data
prostate_svs, prostate_path = prostate_tissue()
# Initialize slide
slide = Slide(prostate_path, processed_path="output/")
# Inspect properties
print(f"Dimensions: {slide.dimensions}")
print(f"Levels: {slide.levels}")
print(f"Magnification: {slide.properties.get('openslide.objective-power')}")
# Save thumbnail
slide.save_thumbnail()
Automatically identify tissue regions and filter background/artifacts.
Common operations:
Key classes: TissueMask, BiggestTissueBoxMask, BinaryMask
Reference: references/tissue_masks.md contains comprehensive documentation on:
locate_mask()Example workflow:
from histolab.masks import TissueMask, BiggestTissueBoxMask
# Create tissue mask for all tissue regions
tissue_mask = TissueMask()
# Visualize mask on slide
slide.locate_mask(tissue_mask)
# Get mask array
mask_array = tissue_mask(slide)
# Use largest tissue region (default for most extractors)
biggest_mask = BiggestTissueBoxMask()
When to use each mask:
TissueMask: Multiple tissue sections, comprehensive analysisBiggestTissueBoxMask: Single main tissue section, exclude artifacts (default)BinaryMask: Specific ROI, exclude annotations, custom segmentationExtract smaller regions from large WSI using different strategies.
Three extraction strategies:
RandomTiler: Extract fixed number of randomly positioned tiles
n_tiles, seed for reproducibilityGridTiler: Systematically extract tiles across tissue in grid pattern
pixel_overlap for sliding windowsScoreTiler: Extract top-ranked tiles based on scoring functions
scorer (NucleiScorer, CellularityScorer, custom)Common parameters:
tile_size: Tile dimensions (e.g., (512, 512))level: Pyramid level for extraction (0 = highest resolution)check_tissue: Filter tiles by tissue contenttissue_percent: Minimum tissue coverage (default 80%)extraction_mask: Mask defining extraction regionReference: references/tile_extraction.md contains comprehensive documentation on:
locate_tiles()Example workflows:
from histolab.tiler import RandomTiler, GridTiler, ScoreTiler
from histolab.scorer import NucleiScorer
# Random sampling (fast, diverse)
random_tiler = RandomTiler(
tile_size=(512, 512),
n_tiles=100,
level=0,
seed=42,
check_tissue=True,
tissue_percent=80.0
)
random_tiler.extract(slide)
# Grid coverage (comprehensive)
grid_tiler = GridTiler(
tile_size=(512, 512),
level=0,
pixel_overlap=0,
check_tissue=True
)
grid_tiler.extract(slide)
# Score-based selection (most informative)
score_tiler = ScoreTiler(
tile_size=(512, 512),
n_tiles=50,
scorer=NucleiScorer(),
level=0
)
score_tiler.extract(slide, report_path="tiles_report.csv")
Always preview before extracting:
# Preview tile locations on thumbnail
tiler.locate_tiles(slide, n_tiles=20)
Apply image processing filters for tissue detection, quality control, and preprocessing.
Filter categories:
Image Filters: Color space conversions, thresholding, contrast enhancement
RgbToGrayscale, RgbToHsv, RgbToHedOtsuThreshold, AdaptiveThresholdStretchContrast, HistogramEqualizationMorphological Filters: Structural operations on binary images
BinaryDilation, BinaryErosionBinaryOpening, BinaryClosingRemoveSmallObjects, RemoveSmallHolesComposition: Chain multiple filters together
Compose: Create filter pipelinesReference: references/filters_preprocessing.md contains comprehensive documentation on:
Example workflows:
from histolab.filters.compositions import Compose
from histolab.filters.image_filters import RgbToGrayscale, OtsuThreshold
from histolab.filters.morphological_filters import (
BinaryDilation, RemoveSmallHoles, RemoveSmallObjects
)
# Standard tissue detection pipeline
tissue_detection = Compose([
RgbToGrayscale(),
OtsuThreshold(),
BinaryDilation(disk_size=5),
RemoveSmallHoles(area_threshold=1000),
RemoveSmallObjects(area_threshold=500)
])
# Use with custom mask
from histolab.masks import TissueMask
custom_mask = TissueMask(filters=tissue_detection)
# Apply filters to tile
from histolab.tile import Tile
filtered_tile = tile.apply_filters(tissue_detection)
Visualize slides, masks, tile locations, and extraction quality.
Common visualization tasks:
Reference: references/visualization.md contains comprehensive documentation on:
locate_mask()locate_tiles()Example workflows:
import matplotlib.pyplot as plt
from histolab.masks import TissueMask
# Display slide thumbnail
plt.figure(figsize=(10, 10))
plt.imshow(slide.thumbnail)
plt.title(f"Slide: {slide.name}")
plt.axis('off')
plt.show()
# Visualize tissue mask
tissue_mask = TissueMask()
slide.locate_mask(tissue_mask)
# Preview tile locations
tiler = RandomTiler(tile_size=(512, 512), n_tiles=50)
tiler.locate_tiles(slide, n_tiles=20)
# Display extracted tiles in grid
from pathlib import Path
from PIL import Image
tile_paths = list(Path("output/tiles/").glob("*.png"))[:16]
fig, axes = plt.subplots(4, 4, figsize=(12, 12))
axes = axes.ravel()
for idx, tile_path in enumerate(tile_paths):
tile_img = Image.open(tile_path)
axes[idx].imshow(tile_img)
axes[idx].set_title(tile_path.stem, fontsize=8)
axes[idx].axis('off')
plt.tight_layout()
plt.show()
Quick sampling of diverse tissue regions for initial analysis.
from histolab.slide import Slide
from histolab.tiler import RandomTiler
import logging
# Enable logging for progress tracking
logging.basicConfig(level=logging.INFO)
# Load slide
slide = Slide("slide.svs", processed_path="output/random_tiles/")
# Inspect slide
print(f"Dimensions: {slide.dimensions}")
print(f"Levels: {slide.levels}")
slide.save_thumbnail()
# Configure random tiler
random_tiler = RandomTiler(
tile_size=(512, 512),
n_tiles=100,
level=0,
seed=42,
check_tissue=True,
tissue_percent=80.0
)
# Preview locations
random_tiler.locate_tiles(slide, n_tiles=20)
# Extract tiles
random_tiler.extract(slide)
Complete tissue coverage for whole-slide analysis.
from histolab.slide import Slide
from histolab.tiler import GridTiler
from histolab.masks import TissueMask
# Load slide
slide = Slide("slide.svs", processed_path="output/grid_tiles/")
# Use TissueMask for all tissue sections
tissue_mask = TissueMask()
slide.locate_mask(tissue_mask)
# Configure grid tiler
grid_tiler = GridTiler(
tile_size=(512, 512),
level=1, # Use level 1 for faster extraction
pixel_overlap=0,
check_tissue=True,
tissue_percent=70.0
)
# Preview grid
grid_tiler.locate_tiles(slide)
# Extract all tiles
grid_tiler.extract(slide, extraction_mask=tissue_mask)
Extract most informative tiles based on nuclei density.
from histolab.slide import Slide
from histolab.tiler import ScoreTiler
from histolab.scorer import NucleiScorer
import pandas as pd
import matplotlib.pyplot as plt
# Load slide
slide = Slide("slide.svs", processed_path="output/scored_tiles/")
# Configure score tiler
score_tiler = ScoreTiler(
tile_size=(512, 512),
n_tiles=50,
level=0,
scorer=NucleiScorer(),
check_tissue=True
)
# Preview top tiles
score_tiler.locate_tiles(slide, n_tiles=15)
# Extract with report
score_tiler.extract(slide, report_path="tiles_report.csv")
# Analyze scores
report_df = pd.read_csv("tiles_report.csv")
plt.hist(report_df['score'], bins=20, edgecolor='black')
plt.xlabel('Tile Score')
plt.ylabel('Frequency')
plt.title('Distribution of Tile Scores')
plt.show()
Process entire slide collection with consistent parameters.
from pathlib import Path
from histolab.slide import Slide
from histolab.tiler import RandomTiler
import logging
logging.basicConfig(level=logging.INFO)
# Configure tiler once
tiler = RandomTiler(
tile_size=(512, 512),
n_tiles=50,
level=0,
seed=42,
check_tissue=True
)
# Process all slides
slide_dir = Path("slides/")
output_base = Path("output/")
for slide_path in slide_dir.glob("*.svs"):
print(f"\nProcessing: {slide_path.name}")
# Create slide-specific output directory
output_dir = output_base / slide_path.stem
output_dir.mkdir(parents=True, exist_ok=True)
# Load and process slide
slide = Slide(slide_path, processed_path=output_dir)
# Save thumbnail for review
slide.save_thumbnail()
# Extract tiles
tiler.extract(slide)
print(f"Completed: {slide_path.name}")
Handle slides with artifacts, annotations, or unusual staining.
from histolab.slide import Slide
from histolab.masks import TissueMask
from histolab.tiler import RandomTiler
from histolab.filters.compositions import Compose
from histolab.filters.image_filters import RgbToGrayscale, OtsuThreshold
from histolab.filters.morphological_filters import (
BinaryDilation, RemoveSmallObjects, RemoveSmallHoles
)
# Define custom filter pipeline for aggressive artifact removal
aggressive_filters = Compose([
RgbToGrayscale(),
OtsuThreshold(),
BinaryDilation(disk_size=10),
RemoveSmallHoles(area_threshold=5000),
RemoveSmallObjects(area_threshold=3000) # Remove larger artifacts
])
# Create custom mask
custom_mask = TissueMask(filters=aggressive_filters)
# Load slide and visualize mask
slide = Slide("slide.svs", processed_path="output/")
slide.locate_mask(custom_mask)
# Extract with custom mask
tiler = RandomTiler(tile_size=(512, 512), n_tiles=100)
tiler.extract(slide, extraction_mask=custom_mask)
locate_mask() before extractionTissueMask for multiple sections, BiggestTissueBoxMask for single sectionslocate_tiles() before extractingtissue_percent threshold (70-90% typical)BiggestTissueBoxMask over TissueMask when appropriatetissue_percent to reduce invalid tile attemptsn_tiles for initial explorationpixel_overlap=0 for non-overlapping gridspixel_overlap for sliding window approachestissue_percent thresholdcheck_tissue=Truetissue_percent thresholdn_tiles for RandomTiler/ScoreTilertissue_percent per staining qualityThis skill includes detailed reference documentation in the references/ directory:
Comprehensive guide to loading, inspecting, and working with whole slide images:
Complete documentation on tissue detection and masking:
Detailed explanation of tile extraction strategies:
Complete filter reference and preprocessing guide:
Comprehensive visualization guide:
Usage pattern: Reference files contain in-depth information to support workflows described in this main skill document. Load specific reference files as needed for detailed implementation guidance, troubleshooting, or advanced features.
Weekly Installs
56
Repository
GitHub Stars
17.3K
First Seen
Jan 20, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode49
codex48
gemini-cli47
cursor45
claude-code44
github-copilot44
AI界面设计评审工具 - 全面评估UI/UX设计质量、检测AI生成痕迹与优化用户体验
58,500 周安装
Vue.js Options API 最佳实践与 TypeScript 集成指南 - 解决常见开发问题
1,200 周安装
高级前端开发工具包:自动化组件生成、打包分析与脚手架工具
1,200 周安装
Nuxt SEO 模块:一站式 SEO 优化方案,轻松配置站点、生成站点地图和结构化数据
1,200 周安装
scaffold-exercises脚手架工具:自动化创建符合规范的练习目录结构
1,300 周安装
Binance 兑换 API 使用指南 - 加密货币交易与兑换开发技能
1,300 周安装
AutoML 管道设置专家:自动化机器学习流水线架构与配置指南
45 周安装