You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在DJL中加载numpy的.npy文件,验证PyTorch模型前后处理?

在DJL中加载.npy文件为NDArray的解决方案

纯DJL方案(优先推荐)

DJL内置了NumpyDecoder工具,可以直接解析.npy格式文件并转换为NDArray,无需额外依赖。

代码示例

import ai.djl.ndarray.NDArray;
import ai.djl.ndarray.NDManager;
import ai.djl.ndarray.numpy.NumpyDecoder;
import java.nio.file.Paths;

public class NpyLoader {
    public static void main(String[] args) throws Exception {
        // 创建NDManager(DJL的核心数组管理类)
        try (NDManager manager = NDManager.newBaseManager()) {
            // 加载指定路径的.npy文件
            NDArray inputArray = manager.decode(NumpyDecoder.INSTANCE, Paths.get("preprocessed.npy"));
            
            // 验证加载结果(可选)
            System.out.println("数组形状: " + inputArray.getShape());
            System.out.println("数据类型: " + inputArray.getDataType());
            System.out.println("首个元素值: " + inputArray.getFloat(0));
            
            // 直接将该数组输入到已加载的模型中测试
            // NDArray output = loadedModel.predict(inputArray);
        }
    }
}

依赖说明

确保你的项目依赖中包含DJL的numpy模块(版本需与DJL核心版本匹配),以Maven为例:

<dependency>
    <groupId>ai.djl</groupId>
    <artifactId>numpy</artifactId>
    <version>0.23.0</version> <!-- 替换为你的DJL核心版本 -->
</dependency>

辅助库方案

如果需要简化文件读取操作,可以搭配Apache Commons IO工具库,核心仍使用DJL的NumpyUtils解析.npy字节数据。

代码示例

import ai.djl.ndarray.NDArray;
import ai.djl.ndarray.NDManager;
import ai.djl.ndarray.numpy.NumpyUtils;
import org.apache.commons.io.FileUtils;
import java.io.File;

public class NpyLoaderWithCommons {
    public static void main(String[] args) throws Exception {
        try (NDManager manager = NDManager.newBaseManager()) {
            // 读取.npy文件字节数组
            byte[] npyData = FileUtils.readFileToByteArray(new File("preprocessed.npy"));
            // 转换为DJL NDArray
            NDArray inputArray = NumpyUtils.fromNumpy(manager, npyData);
            
            // 后续测试逻辑
            // ...
        }
    }
}

依赖说明

除DJL核心及numpy模块外,需添加Commons IO依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.15.0</version>
</dependency>

注意事项

  • 若你的文件是多数组的.npz格式,需使用NumpyDecoder的decodeNpz方法处理
  • 加载后的NDArray可直接用于模型推理,对比PyTorch端的输出结果,即可验证前后处理逻辑的一致性
  • 确保DJL各模块版本统一,避免兼容性问题

内容的提问来源于stack exchange,提问作者Christoph Henkelmann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 17:02:28