private static TensorFieldValue createTensor(TokenBuffer buffer, TensorType tensorType) { Tensor.Builder tensorBuilder = Tensor.Builder.of(tensorType); readTensorCells(buffer, tensorBuilder); TensorFieldValue result = new TensorFieldValue(tensorType); result.assign(tensorBuilder.build()); return result; }
@Override public void read(FieldBase field, TensorFieldValue value) { int encodedTensorLength = buf.getInt1_4Bytes(); if (encodedTensorLength > 0) { byte[] encodedTensor = getBytes(null, encodedTensorLength); value.assign(TypedBinaryFormat.decode(Optional.of(value.getDataType().getTensorType()), GrowableByteBuffer.wrap(encodedTensor))); } else { value.clear(); } }
@Override public void read(FieldBase field, TensorFieldValue value) { int encodedTensorLength = buf.getInt1_4Bytes(); if (encodedTensorLength > 0) { byte[] encodedTensor = getBytes(null, encodedTensorLength); value.assign(TypedBinaryFormat.decode(Optional.of(value.getDataType().getTensorType()), GrowableByteBuffer.wrap(encodedTensor))); } else { value.clear(); } }
public static void fillTensor(TokenBuffer buffer, TensorFieldValue tensorFieldValue) { Tensor.Builder tensorBuilder = Tensor.Builder.of(tensorFieldValue.getDataType().getTensorType()); expectObjectStart(buffer.currentToken()); int initNesting = buffer.nesting(); // read tensor cell fields and ignore everything else for (buffer.next(); buffer.nesting() >= initNesting; buffer.next()) { if (TensorReader.TENSOR_CELLS.equals(buffer.currentName())) readTensorCells(buffer, tensorBuilder); } expectObjectEnd(buffer.currentToken()); tensorFieldValue.assign(tensorBuilder.build()); }