如何将Json中的n维矩阵转换为java中的INDArray
来源:互联网 发布:编程好学不 编辑:程序博客网 时间:2024/06/07 00:39
代码使用了递归, gson,nd4j
import com.google.gson.JsonElement;import org.apache.commons.lang3.ArrayUtils;import org.nd4j.linalg.api.ndarray.INDArray;import org.nd4j.linalg.api.shape.Shape;import java.util.ArrayList;import java.util.Arrays;class CommonPort{ static INDArray load_json_to_NDArray(JsonElement json_array, int depth) { if (0 >= depth) return null; ArrayList<Integer> shape = get_shape(json_array, depth); Integer[] shape_a = new Integer[shape.size()]; shape.toArray(shape_a); int[] shape_int = ArrayUtils.toPrimitive(shape_a); INDArray result; if (1 == shape_int.length) result = Nd4j.create(shape_int[0]); else result = Nd4j.zeros(shape_int); int json_array_size = json_array.getAsJsonArray().size(); for(int i = 0; i < json_array_size; ++i){ if (1 == depth) result.putScalar(i, json_array.getAsJsonArray().get(i).getAsDouble()); else result.putRow(i, load_json_to_NDArray(json_array.getAsJsonArray().get(i), depth - 1)); } if (1 == shape_int.length){ result = result.permute(1, 0); } return result; } static private ArrayList<Integer> get_shape(JsonElement json_array, int depth) { ArrayList<Integer> result = new ArrayList<>(); if (1 == depth) result.add(json_array.getAsJsonArray().size()); else if (1 < depth){ result.add(json_array.getAsJsonArray().size()); result.addAll(get_shape(json_array.getAsJsonArray().get(0), depth - 1)); } return result; }}
0 0
- 如何将Json中的n维矩阵转换为java中的INDArray
- java 如何将byte中的有效长度转换为String
- java 如何将byte中的有效长度转换为String
- 将request中的json字符串转换为json对象
- 将数据库中的结果集转换为json格式
- spring-mvc中的将data转换为json
- Servlet中如何将json对象转化为Java中的自定义对象
- 如何将表单中的值在Jquery中转为json
- 如何将java中Date存入mysql中的datetime中,字符串怎么转换为日期类型
- 如何将java中Date存入mysql中的datetime中,字符串怎么转换为日期类型
- 如何将bean转换为json对象
- python 如何将CSV转换为json
- java将json数据中的下划线命名的Key取代为驼峰命名的key(方便将json数据转换成实体对象)
- javascript 中的JSON.stringify - 将对象和数组转换为json格式(来源于网络)
- 将form中的值转换为键值对函数,Json.parse和json.stringify()用法
- 将json字符串转化为json数组,以及转化为java中的集合
- JSON(2):如何将一个java对象转换为一个符合json语法的字符串
- 将java对象转换为Json
- 恩布企业IM,协同办公平台发布V1.24.1版本
- HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法
- AndFix Alibaba开源项目使用及基本原理
- Unity优化大全(五)之CPU- VSync Count
- CSS3 Background
- 如何将Json中的n维矩阵转换为java中的INDArray
- jieba 分词 centos 安装,python使用
- PHP 插入排序
- 【学校OJ】 二叉树 哈夫曼编码
- 百度地图 标线
- 3 shiro权限控制的配置(url和静态资源)
- UVA Fractions Again?! UVA - 10976
- Using MySQL in Qt5.7 on Windows
- Unity优化大全(六)之 GPU-动态阴影和Shader