小众AI

ivy
ivy - 机器学习代码跨框架转换利器
可以将机器学习模型、工具和库从一个框架转换到另一个框架。开发者通过简单的函数即可完成代码的转换,支持 TensorFlow、PyTorch、JAX 等主流框架。
  官网   代码仓

可以将机器学习模型、工具和库从一个框架转换到另一个框架。开发者通过简单的函数即可完成代码的转换,支持 TensorFlow、PyTorch、JAX 等主流框架。

支持的框架

这些是当前支持 conversion from 和 to 的框架。 我们正在努力添加对更多框架的支持,如果有对您有用的源/目标框架,请在 Discord 上告诉我们!ivy.transpile

框架 目标
PyTorch 插件 🚧
TensorFlow 🚧
JAX 🚧
NumPy 🚧

安装 ivy

设置 Ivy 的最简单方法是使用 pip 安装它:

pip install ivy
  • Docker 镜像 您可以从以下位置提取 Ivy 的 Docker 镜像:

    docker pull ivyllc/ivy:latest
    
  • 从源 如果您想利用 最新的更改,但我们不能保证一切都会像 预期 😅

    git clone https://github.com/ivy-llc/ivy.git
    cd ivy
    pip install --user -e .
    

    如果您想设置测试和各种框架,这可能是最好的 查看设置页面,其中提供了特定于作系统和 IDE 的说明!

Ivy的使用示例

1. 跨框架代码转换

以下是一个将PyTorch代码转换为TensorFlow代码的简单示例:

import ivy
import torch
import tensorflow as tf

def torch_fn(x):
    a = torch.mul(x, x)
    b = torch.mean(x)
    return x * a + b

tf_fn = ivy.transpile(torch_fn, source="torch", target="tensorflow")

tf_x = tf.convert_to_tensor([1., 2., 3.])
ret = tf_fn(tf_x)

在这个例子中,我们定义了一个简单的PyTorch函数torch_fn,然后使用ivy.transpile将其转换为TensorFlow函数tf_fn。转换后的函数可以直接接受TensorFlow张量作为输入并正常运行。

2. 计算图追踪

Ivy还提供了计算图追踪功能,可以优化任何代码的计算图:

import ivy
import torch

def torch_fn(x):
    a = torch.mul(x, x)
    b = torch.mean(x)
    return x * a + b

torch_x = torch.tensor([1., 2., 3.])
graph = ivy.trace_graph(torch_fn, to="torch", args=(torch_x,))
ret = graph(torch_x)

在这个例子中,我们使用ivy.trace_graph函数来追踪torch_fn的计算图,并生成一个优化后的图函数。这个优化后的函数可以提供更高的执行效率。

探索svy的技术原理,我们会发现,ivy对于代码的解析能力十分关键:

  1. 代码解析: Ivy首先会解析源框架的代码,理解其结构和功能。
  2. 中间表示: 将源代码转换为Ivy的中间表示,这是一种框架无关的表示方式。
  3. 目标代码生成: 根据中间表示生成目标框架的等效代码。
  4. 优化: 在转换过程中,Ivy会应用各种优化技术,以确保生成的代码高效运行。

更多...


wdoc
一个功能强大的 RAG(检索增强生成)系统,旨在汇总、搜索和查询各种文件类型的文档。
ai-financial-agent
探索人工智能在投资研究中的应用。
Meetily
一个 AI 驱动的会议助手,可捕获实时会议音频、实时转录并生成摘要,同时确保用户隐私。