首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在java中将INDArray转换为Json?

如何在java中将INDArray转换为Json?
EN

Stack Overflow用户
提问于 2018-02-16 16:13:45
回答 3查看 1.4K关注 0票数 1
代码语言:javascript
运行
复制
INDArray image = loader.asMatrix(file);

如何将INDArray转换为Json字符串,以及如何将Json字符串转换为INDArray。我在谷歌上搜索,没有显示任何记录这一点的结果。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-16 18:01:40

我看到INDArray有一个data()方法(参见INDArray API)。

这为您提供了一个DataBuffer,它又具有将其导出为Java数组的方法(请参阅DataBuffer API)

所以我认为你应该这样做:

代码语言:javascript
运行
复制
INDArray image = loader.asMatrix(file);
DataBuffer dataBuffer = image.data();
int[] array = dataBuffer.asInt(); // or any type you want

现在您有了一个Java数组,可以使用Gson生成Json字符串

代码语言:javascript
运行
复制
Gson gson = new Gson();
String jsonString = gson.toJson(array);

我假设您可以用另一种方式(JSON到INDArray)做同样的事情,使用Gson将json字符串转换为java数组,然后在其中创建一个INDArray。请参阅用户指南Creating NDArrays from Java arrays

票数 3
EN

Stack Overflow用户

发布于 2018-02-17 12:31:23

代码语言:javascript
运行
复制
    INDArray matrix=  imageLoader.asMatrix(file);

    System.out.println("INDArray Original: " + matrix);
    DataBuffer buff= matrix.data();
    double[] array= buff.asDouble();

    Gson gson= new Gson();
    String imageStr= gson.toJson(array);
    ArrayList<Double> result= gson.fromJson(imageStr, ArrayList.class);

    double[] r= ArrayUtil.toArrayDouble(result);

    int[] shape = matrix.shape();
    INDArray final_array= Nd4j.create(r, shape, 'c');
    System.out.println("After Java array to INDarray: " + final_array.toString());

将INDArray转换为Gson以及从GSON转换为INDArray的代码的完整版本。

票数 1
EN

Stack Overflow用户

发布于 2019-11-27 14:47:13

对于二维数组:

代码语言:javascript
运行
复制
INDArray matrix = YOUR_MATRIX;
double[][] java2dArray = matrix.toDoubleMatrix();


INDArray matrix = ND4j.create(java2dArray);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48822583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档