tensornets

GitHub
1k 179 简单 1 次阅读 3天前MIT开发框架图像语言模型
AI 解读 由 AI 自动生成,仅供参考

tensornets 是一个基于 TensorFlow 构建的高层神经网络定义库,旨在让开发者轻松调用带有预训练权重的经典模型。它主要解决了在现有机器学习工作流中集成新模型时面临的代码冗余、版本兼容困难以及中间层访问复杂等痛点。

这款工具非常适合需要在 TensorFlow 环境中快速验证想法的 AI 研究人员和工程师。与传统的类封装方式不同,tensornets 采用简洁的函数式接口,直接接收并返回张量(Tensor),能够无缝嵌入任何现有的 TensorFlow 流程。其核心亮点在于极高的代码可读性与可维护性:例如,它将原本需要两千多行代码实现的 Inception 系列模型精简至约五百行。此外,tensornets 提供了便捷的 API,让用户不仅能一键加载预训练权重进行推理,还能轻松提取任意中间层的特征输出,或保存与恢复模型参数。无论是复现论文结果还是部署生产环境,tensornets 都能提供轻量、透明且高效的解决方案。

使用场景

某计算机视觉团队正在构建一个工业缺陷检测系统,需要快速集成 ResNet50 等预训练模型作为特征提取器,以便在少量样本上进行微调。

没有 tensornets 时

  • 代码冗余严重:复现官方 Inception 或 ResNet 架构需编写上千行嵌套代码,结构复杂且难以阅读维护。
  • 权重加载繁琐:手动匹配预训练权重与模型层名称极易出错,常因版本不兼容导致加载失败。
  • 中间层获取困难:若想提取特定卷积层的特征图,必须修改原模型类定义或重新构建计算图,流程断裂。
  • 部署灵活性差:模型被封装在自定义类中,难以无缝插入团队现有的 TensorFlow 工作流。

使用 tensornets 后

  • 架构即函数:ResNet50 等模型仅需一行函数调用即可生成,代码量缩减至几百行,逻辑清晰易读。
  • 一键加载权重:调用 model.pretrained() 即可自动对齐并加载预训练参数,完美复现原始论文结果。
  • 灵活提取特征:通过 model.middles()model.outputs() 可直接获取任意中间层张量,无需修改模型结构。
  • 原生无缝集成:模型输入输出均为标准 tf.Tensor,能直接嵌入现有数据处理流水线,无额外适配成本。

tensornets 通过将复杂的预训练模型转化为简洁的函数式接口,极大降低了高性能视觉模型的研发门槛与集成成本。

运行环境要求

操作系统
  • 未说明
GPU
  • 非必需
  • 若需性能测试或加速,文档提及测试环境为 NVIDIA Tesla P100 (16GB 显存),搭配 CUDA 8.0 和 cuDNN 6.0
  • FasterRCNN 模型需要额外编译 roi_pooling 组件
内存

未说明

依赖
notes该工具主要基于 TensorFlow 1.x 风格开发(使用 tf.contrib.layers),在 TensorFlow 2.x 中运行可能需要禁用 v2 行为(tf.disable_v2_behavior())或使用兼容模式。安装 FasterRCNN 时需手动克隆并编译第三方 roi_pooling 库。预训练权重会在首次运行时自动下载。
python未说明
tensorflow>=1.4.0, <=2.1.0
numpy
matplotlib
tensornets hero image

快速开始

TensorNets 构建状态

TensorFlow 中提供带有预训练权重的高级网络定义(经测试与 2.1.0 >= TF >= 1.4.0 兼容)。

指导原则

  • 适用性。 许多人已经有自己的机器学习工作流,并希望在其工作流中加入新模型。TensorNets 可以轻松集成,因为它被设计为简单的函数式接口,而不使用自定义类。
  • 可管理性。 模型使用 tf.contrib.layers 编写,其轻量级特性类似于 PyTorch 和 Keras,便于访问每个权重和输出端点。此外,部署和扩展预处理及预训练权重的集合也非常容易。
  • 可读性。 借助最新的 TensorFlow API,可以实现更多的代码模块化和更少的缩进。例如,所有 Inception 变体在 TensorNets 中仅用约 500 行代码实现,而在 官方 TensorFlow 模型 中则需要 2000 多行。
  • 可复现性。 您始终可以通过包括特征提取在内的简单 API 复现原始结果。此外,您无需担心 TensorFlow 的版本问题,因为与不同版本 TensorFlow 的兼容性已通过 Travis 进行了验证。

安装

您可以从 PyPI (pip install tensornets) 或直接从 GitHub (pip install git+https://github.com/taehoonlee/tensornets.git) 安装 TensorNets。

快速示例

每个网络(参见完整列表)都不是自定义类,而是一个以 tf.Tensor 作为输入和输出的函数。以下是 ResNet50 的示例:

import tensorflow as tf
# import tensorflow.compat.v1 as tf  # 适用于 TF 2
import tensornets as nets
# tf.disable_v2_behavior()  # 适用于 TF 2

inputs = tf.placeholder(tf.float32, [None, 224, 224, 3])
model = nets.ResNet50(inputs)

assert isinstance(model, tf.Tensor)

您可以使用 utils.load_img 加载示例图像,该函数返回一个 NHWC 格式的 np.ndarray

img = nets.utils.load_img('cat.png', target_size=256, crop_size=224)
assert img.shape == (1, 224, 224, 3)

一旦创建了您的网络,就可以使用常规的 TensorFlow API 运行 😊,因为 TensorNets 中的所有网络始终返回 tf.Tensor。使用预训练权重和预处理非常简单,只需调用 pretrained()preprocess(),即可复现原始结果:

with tf.Session() as sess:
    img = model.preprocess(img)  # 等同于 img = nets.preprocess(model, img)
    sess.run(model.pretrained())  # 等同于 nets.pretrained(model)
    preds = sess.run(model, {inputs: img})

您可以查看最可能的类别:

print(nets.utils.decode_predictions(preds, top=2)[0])
[(u'n02124075', u'Egyptian_cat', 0.28067636), (u'n02127052', u'lynx', 0.16826575)]

您还可以轻松获取中间层的值,使用 middles()outputs()

with tf.Session() as sess:
    img = model.preprocess(img)
    sess.run(model.pretrained())
    middles = sess.run(model.middles(), {inputs: img})
    outputs = sess.run(model.outputs(), {inputs: img})

model.print_middles()
assert middles[0].shape == (1, 56, 56, 256)
assert middles[-1].shape == (1, 7, 7, 2048)

model.print_outputs()
assert sum(sum((outputs[-1] - preds) ** 2)) < 1e-8

借助 load()save(),您的权重值可以恢复:

with tf.Session() as sess:
    model.init()
    # ... 您的训练 ...
    model.save('test.npz')

with tf.Session() as sess:
    model.load('test.npz')
    # ... 您的部署 ...

TensorNets 使我们能够更快地部署知名架构并对其进行基准测试 ⚡️。有关更多信息,请查看 实用工具示例架构 列表。

目标检测示例

每个目标检测模型都可以与 TensorNets 中的任何网络结合使用(参见 性能),并接受两个参数:占位符和充当茎层的函数。以下是用于 PASCAL VOC 的 YOLOv2 示例:

import tensorflow as tf
import tensornets as nets

inputs = tf.placeholder(tf.float32, [None, 416, 416, 3])
model = nets.YOLOv2(inputs, nets.Darknet19)

img = nets.utils.load_img('cat.png')

with tf.Session() as sess:
    sess.run(model.pretrained())
    preds = sess.run(model, {inputs: model.preprocess(img)})
    boxes = model.get_boxes(preds, img.shape[1:3])

与其他模型一样,检测模型也会返回 tf.Tensor 作为输出。您可以使用 model.get_boxes(model_output, original_img_shape) 查看边界框预测 (x1, y1, x2, y2, score),并可视化结果:

from tensornets.datasets import voc
print("%s: %s" % (voc.classnames[7], boxes[7][0]))  # 7 是猫

import numpy as np
import matplotlib.pyplot as plt
box = boxes[7][0]
plt.imshow(img[0].astype(np.uint8))
plt.gca().add_patch(plt.Rectangle(
    (box[0], box[1]), box[2] - box[0], box[3] - box[1],
    fill=False, edgecolor='r', linewidth=2))
plt.show()

更多检测示例,例如 VOC2007 上的 FasterRCNN,可在这里找到 😎。请注意:

  • 检测模型的 API 略有不同:

    • YOLOv3: sess.run(model.preds, {inputs: img}),
    • YOLOv2: sess.run(model, {inputs: img}),
    • FasterRCNN: sess.run(model, {inputs: img, model.scales: scale})
  • FasterRCNN 需要 roi_pooling

    • git clone https://github.com/deepsense-io/roi-pooling && cd roi-pooling && vi roi_pooling/Makefile 并根据此处进行编辑,
    • python setup.py install

工具函数

除了 pretrained()preprocess() 之外,输出的 tf.Tensor 还提供了以下有用的方法:

  • logits:返回 tf.Tensor 形式的 logits(即 softmax 之前的值);
  • middles()(=get_middles()):返回所有代表性端点的 tf.Tensor 列表;
  • outputs()(=get_outputs()):返回所有端点的 tf.Tensor 列表;
  • weights()(=get_weights()):返回所有权重矩阵的 tf.Tensor 列表;
  • summary()(=print_summary()):打印层数、权重矩阵数和参数量;
  • print_middles():打印所有代表性端点;
  • print_outputs():打印所有端点;
  • print_weights():打印所有权重矩阵。
打印方法的示例输出如下:
>>> model.print_middles()
Scope: resnet50
conv2/block1/out:0 (?, 56, 56, 256)
conv2/block2/out:0 (?, 56, 56, 256)
conv2/block3/out:0 (?, 56, 56, 256)
conv3/block1/out:0 (?, 28, 28, 512)
conv3/block2/out:0 (?, 28, 28, 512)
conv3/block3/out:0 (?, 28, 28, 512)
conv3/block4/out:0 (?, 28, 28, 512)
conv4/block1/out:0 (?, 14, 14, 1024)
...

>>> model.print_outputs()
Scope: resnet50
conv1/pad:0 (?, 230, 230, 3)
conv1/conv/BiasAdd:0 (?, 112, 112, 64)
conv1/bn/batchnorm/add_1:0 (?, 112, 112, 64)
conv1/relu:0 (?, 112, 112, 64)
pool1/pad:0 (?, 114, 114, 64)
pool1/MaxPool:0 (?, 56, 56, 64)
conv2/block1/0/conv/BiasAdd:0 (?, 56, 56, 256)
conv2/block1/0/bn/batchnorm/add_1:0 (?, 56, 56, 256)
conv2/block1/1/conv/BiasAdd:0 (?, 56, 56, 64)
conv2/block1/1/bn/batchnorm/add_1:0 (?, 56, 56, 64)
conv2/block1/1/relu:0 (?, 56, 56, 64)
...

>>> model.print_weights()
Scope: resnet50
conv1/conv/weights:0 (7, 7, 3, 64)
conv1/conv/biases:0 (64,)
conv1/bn/beta:0 (64,)
conv1/bn/gamma:0 (64,)
conv1/bn/moving_mean:0 (64,)
conv1/bn/moving_variance:0 (64,)
conv2/block1/0/conv/weights:0 (1, 1, 64, 256)
conv2/block1/0/conv/biases:0 (256,)
conv2/block1/0/bn/beta:0 (256,)
conv2/block1/0/bn/gamma:0 (256,)
...

>>> model.summary()
Scope: resnet50
Total layers: 54
Total weights: 320
Total parameters: 25,636,712

示例

  • 不同网络的比较:
inputs = tf.placeholder(tf.float32, [None, 224, 224, 3])
models = [
    nets.MobileNet75(inputs),
    nets.MobileNet100(inputs),
    nets.SqueezeNet(inputs),
]

img = utils.load_img('cat.png', target_size=256, crop_size=224)
imgs = nets.preprocess(models, img)

with tf.Session() as sess:
    nets.pretrained(models)
    for (model, img) in zip(models, imgs):
        preds = sess.run(model, {inputs: img})
        print(utils.decode_predictions(preds, top=2)[0])
  • 迁移学习:
inputs = tf.placeholder(tf.float32, [None, 224, 224, 3])
outputs = tf.placeholder(tf.float32, [None, 50])
model = nets.DenseNet169(inputs, is_training=True, classes=50)

loss = tf.losses.softmax_cross_entropy(outputs, model.logits)
train = tf.train.AdamOptimizer(learning_rate=1e-5).minimize(loss)

with tf.Session() as sess:
    nets.pretrained(model)
    for (x, y) in your_NumPy_data:  # the NHWC and one-hot format
        sess.run(train, {inputs: x, outputs: y})
  • 使用多 GPU:
inputs = tf.placeholder(tf.float32, [None, 224, 224, 3])
models = []

with tf.device('gpu:0'):
    models.append(nets.ResNeXt50(inputs))

with tf.device('gpu:1'):
    models.append(nets.DenseNet201(inputs))

from tensornets.preprocess import fb_preprocess
img = utils.load_img('cat.png', target_size=256, crop_size=224)
img = fb_preprocess(img)

with tf.Session() as sess:
    nets.pretrained(models)
    preds = sess.run(models, {inputs: img})
    for pred in preds:
        print(utils.decode_predictions(pred, top=2)[0])

性能

图像分类

  • Top-k 准确率是在 ImageNet 验证集 上使用 TensorNets 测得的,可能与原始结果略有不同。
    • 输入:输入到模型中的图像尺寸
    • Top-1:单中心裁剪,Top-1 准确率
    • Top-5:单中心裁剪,Top-5 准确率
    • MAC:使用 tf.profiler 对浮点运算次数进行四舍五入
    • Size:对参数总数(包括全连接层)进行四舍五入
    • Stem:对参数总数(不包括全连接层)进行四舍五入
  • 计算时间是在 NVIDIA Tesla P100(3584 核,16 GB 全局内存)上,使用 cuDNN 6.0 和 CUDA 8.0 测得的。
    • 速度:100 张图像推理所需的时间(毫秒)
  • 摘要图由 此脚本 生成。
输入大小 Top-1准确率 Top-5准确率 MAC数 参数量 Stem参数量 推理速度 参考文献
ResNet50 224 74.874 92.018 51.0M 25.6M 23.6M 195.4 [论文] [tf-slim] [PyTorch-FB]
[Caffe] [Keras]
ResNet101 224 76.420 92.786 88.9M 44.7M 42.7M 311.7 [论文] [tf-slim] [PyTorch-FB]
[Caffe]
ResNet152 224 76.604 93.118 120.1M 60.4M 58.4M 439.1 [论文] [tf-slim] [PyTorch-FB]
[Caffe]
ResNet50v2 299 75.960 93.034 51.0M 25.6M 23.6M 209.7 [论文] [tf-slim] [PyTorch-FB]
ResNet101v2 299 77.234 93.816 88.9M 44.7M 42.6M 326.2 [论文] [tf-slim] [PyTorch-FB]
ResNet152v2 299 78.032 94.162 120.1M 60.4M 58.3M 455.2 [论文] [tf-slim] [PyTorch-FB]
ResNet200v2 224 78.286 94.152 129.0M 64.9M 62.9M 618.3 [论文] [tf-slim] [PyTorch-FB]
ResNeXt50c32 224 77.740 93.810 49.9M 25.1M 23.0M 267.4 [论文] [PyTorch-FB]
ResNeXt101c32 224 78.730 94.294 88.1M 44.3M 42.3M 427.9 [论文] [PyTorch-FB]
ResNeXt101c64 224 79.494 94.592 0.0M 83.7M 81.6M 877.8 [论文] [PyTorch-FB]
WideResNet50 224 78.018 93.934 137.6M 69.0M 66.9M 358.1 [论文] [PyTorch]
Inception1 224 66.840 87.676 14.0M 7.0M 6.0M 165.1 [论文] [tf-slim] [Caffe-Zoo]
Inception2 224 74.680 92.156 22.3M 11.2M 10.2M 134.3 [论文] [tf-slim]
Inception3 299 77.946 93.758 47.6M 23.9M 21.8M 314.6 [论文] [tf-slim] [Keras]
Inception4 299 80.120 94.978 85.2M 42.7M 41.2M 582.1 [论文] [tf-slim]
InceptionResNet2 299 80.256 95.252 111.5M 55.9M 54.3M 656.8 [论文] [tf-slim]
NASNetAlarge 331 82.498 96.004 186.2M 93.5M 89.5M 2081 [论文] [tf-slim]
NASNetAmobile 224 74.366 91.854 15.3M 7.7M 6.7M 165.8 [论文] [tf-slim]
PNASNetlarge 331 82.634 96.050 171.8M 86.2M 81.9M 1978 [论文] [tf-slim]
VGG16 224 71.268 90.050 276.7M 138.4M 14.7M 348.4 [论文] [Keras]
VGG19 224 71.256 89.988 287.3M 143.7M 20.0M 399.8 [论文] [Keras]
DenseNet121 224 74.972 92.258 15.8M 8.1M 7.0M 202.9 [论文] [PyTorch]
DenseNet169 224 76.176 93.176 28.0M 14.3M 12.6M 219.1 [论文] [PyTorch]
DenseNet201 224 77.320 93.620 39.6M 20.2M 18.3M 272.0 [论文] [PyTorch]
MobileNet25 224 51.582 75.792 0.9M 0.5M 0.2M 34.46 [论文] [tf-slim]
MobileNet50 224 64.292 85.624 2.6M 1.3M 0.8M 52.46 [论文] [tf-slim]
MobileNet75 224 68.412 88.242 5.1M 2.6M 1.8M 70.11 [论文] [tf-slim]
MobileNet100 224 70.424 89.504 8.4M 4.3M 3.2M 83.41 [论文] [tf-slim]
MobileNet35v2 224 60.086 82.432 3.3M 1.7M 0.4M 57.04 [论文] [tf-slim]
MobileNet50v2 224 65.194 86.062 3.9M 2.0M 0.7M 64.35 [论文] [tf-slim]
MobileNet75v2 224 69.532 89.176 5.2M 2.7M 1.4M 88.68 [论文] [tf-slim]
MobileNet100v2 224 71.336 90.142 6.9M 3.5M 2.3M 93.82 [论文] [tf-slim]
MobileNet130v2 224 74.680 92.122 10.7M 5.4M 3.8M 130.4 [论文] [tf-slim]
MobileNet140v2 224 75.230 92.422 12.1M 6.2M 4.4M 132.9 [论文] [tf-slim]
75v3large 224 73.754 91.618 7.9M 4.0M 2.7M 79.73 [论文] [tf-slim]
100v3large 224 75.790 92.840 27.3M 5.5M 4.2M 94.71 [论文] [tf-slim]
100v3largemini 224 72.706 90.930 7.8M 3.9M 2.7M 70.57 [论文] [tf-slim]
75v3small 224 66.138 86.534 4.1M 2.1M 1.0M 37.78 [论文] [tf-slim]
100v3small 224 68.318 87.942 5.1M 2.6M 1.5M 42.00 [论文] [tf-slim]
100v3smallmini 224 63.440 84.646 4.1M 2.1M 1.0M 29.65 [论文] [tf-slim]
EfficientNetB0 224 77.012 93.338 26.2M 5.3M 4.0M 147.1 [论文] [TF-TPU]
EfficientNetB1 240 79.040 94.284 15.4M 7.9M 6.6M 217.3 [论文] [TF-TPU]
EfficientNetB2 260 80.064 94.862 18.1M 9.2M 7.8M 296.4 [论文] [TF-TPU]
EfficientNetB3 300 81.384 95.586 24.2M 12.3M 10.8M 482.7 [论文] [TF-TPU]
EfficientNetB4 380 82.588 96.094 38.4M 19.5M 17.7M 959.5 [论文] [TF-TPU]
EfficientNetB5 456 83.496 96.590 60.4M 30.6M 28.5M 1872 [论文] [TF-TPU]
EfficientNetB6 528 83.772 96.762 85.5M 43.3M 41.0M 3503 [论文] [TF-TPU]
EfficientNetB7 600 84.088 96.740 131.9M 66.7M 64.1M 6149 [论文] [TF-TPU]
SqueezeNet 224 54.434 78.040 2.5M 1.2M 0.7M 71.43 [论文] [Caffe]

summary

目标检测

  • 目标检测模型可以与任何网络结合使用,但仅能对具有预训练权重的模型计算 mAP。请注意:
    • YOLOv3VOC 是由 taehoonlee 使用 此配置文件 训练的,该配置文件已修改为 max_batches=70000, steps=40000,60000
    • YOLOv2VOC 等价于 YOLOv2(inputs, Darknet19)
    • TinyYOLOv2VOC: TinyYOLOv2(inputs, TinyDarknet19)
    • FasterRCNN_ZF_VOC: FasterRCNN(inputs, ZF)
    • FasterRCNN_VGG16_VOC: FasterRCNN(inputs, VGG16, stem_out='conv5/3')
  • mAP 值是通过 TensorNets 获得的,可能与原始值略有不同。测试输入尺寸采用论文中报告的最佳数值:
    • YOLOv3YOLOv2: 416x416
    • FasterRCNN: min_shorter_side=600, max_longer_side=1000
  • 计算时间是在 NVIDIA Tesla P100(3584 核,16 GB 全局内存)上测量的,使用 cuDNN 6.0 和 CUDA 8.0。
    • 大小:四舍五入参数数量。
    • 速度:仅针对单张 416x416 或 608x608 图像的网络推理耗时(毫秒)。
    • FPS:1000 / 速度。
PASCAL VOC2007 测试 mAP 大小 速度 FPS 参考文献
YOLOv3VOC (416) 0.7423 62M 24.09 41.51 [论文] [darknet] [darkflow]
YOLOv2VOC (416) 0.7320 51M 14.75 67.80 [论文] [darknet] [darkflow]
TinyYOLOv2VOC (416) 0.5303 16M 6.534 153.0 [论文] [darknet] [darkflow]
FasterRCNN_ZF_VOC 0.4466 59M 241.4 3.325 [论文] [caffe] [roi-pooling]
FasterRCNN_VGG16_VOC 0.6872 137M 300.7 4.143 [论文] [caffe] [roi-pooling]
MS COCO val2014 mAP 大小 速度 FPS 参考文献
YOLOv3COCO (608) 0.6016 62M 60.66 16.49 [论文] [darknet] [darkflow]
YOLOv3COCO (416) 0.6028 62M 40.23 24.85 [论文] [darknet] [darkflow]
YOLOv2COCO (608) 0.5189 51M 45.88 21.80 [论文] [darknet] [darkflow]
YOLOv2COCO (416) 0.4922 51M 21.66 46.17 [论文] [darknet] [darkflow]

新闻 📰

未来工作 🔥

版本历史

0.4.62020/03/31
0.4.52020/03/13
0.4.32020/01/29
0.4.22020/01/23
0.4.12019/10/13
0.4.02019/03/08
0.3.62018/11/10
0.3.52018/09/01
0.3.42018/05/12
0.3.12018/03/27
0.3.02018/03/27
0.2.02018/02/16

常见问题

相似工具推荐

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|今天
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

139k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

107.7k|★★☆☆☆|2天前
开发框架图像Agent

NextChat

NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。

87.6k|★★☆☆☆|今天
开发框架语言模型

ML-For-Beginners

ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。

85k|★★☆☆☆|今天
图像数据工具视频

ragflow

RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。

77.1k|★★★☆☆|昨天
Agent图像开发框架