如何将 INDArray 转换为 java 中的 Json?
How to convert INDArray to Json in java?
INDArray image = loader.asMatrix(file);
如何将 INDArray 转换为 Json 字符串以及从 Json 字符串转换为 INDArray。我在 google 中搜索它没有显示任何记录此内容的结果。
摆弄我看到 INDArray
有一个 data()
方法(参见 INDArray API)
这为您提供了一个 DataBuffer
,它又具有将其导出为 Java 数组的方法(参见 DataBuffer API)
所以我认为你应该这样做:
INDArray image = loader.asMatrix(file);
DataBuffer dataBuffer = image.data();
int[] array = dataBuffer.asInt(); // or any type you want
现在你有一个Java数组,你可以使用Gson
来制作一个Json字符串
Gson gson = new Gson();
String jsonString = gson.toJson(array);
我假设你可以用其他方式做同样的事情(JSON 到 INDArray)
使用 Gson 将您的 json 字符串转换为 java 数组,然后从中创建一个 INDArray。请参阅用户指南 Creating NDArrays from Java arrays
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 的完整代码版本。
对于二维数组:
INDArray matrix = YOUR_MATRIX;
double[][] java2dArray = matrix.toDoubleMatrix();
INDArray matrix = ND4j.create(java2dArray);
INDArray image = loader.asMatrix(file);
如何将 INDArray 转换为 Json 字符串以及从 Json 字符串转换为 INDArray。我在 google 中搜索它没有显示任何记录此内容的结果。
摆弄我看到 INDArray
有一个 data()
方法(参见 INDArray API)
这为您提供了一个 DataBuffer
,它又具有将其导出为 Java 数组的方法(参见 DataBuffer API)
所以我认为你应该这样做:
INDArray image = loader.asMatrix(file);
DataBuffer dataBuffer = image.data();
int[] array = dataBuffer.asInt(); // or any type you want
现在你有一个Java数组,你可以使用Gson
来制作一个Json字符串
Gson gson = new Gson();
String jsonString = gson.toJson(array);
我假设你可以用其他方式做同样的事情(JSON 到 INDArray) 使用 Gson 将您的 json 字符串转换为 java 数组,然后从中创建一个 INDArray。请参阅用户指南 Creating NDArrays from Java arrays
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 的完整代码版本。
对于二维数组:
INDArray matrix = YOUR_MATRIX;
double[][] java2dArray = matrix.toDoubleMatrix();
INDArray matrix = ND4j.create(java2dArray);