Буфер для хранения данных тензора строк.
Значения хранятся в виде массива TF_TString
, внутри которого находится tensorflow::tstring
, который по сути является переносимой версией std::string
.
Данные буфера должны быть инициализированы только один раз, путем вызова ERROR(/#init(NdArray, Function))
, и в буфере должно быть выделено достаточно места (используйте ERROR(/#computeSize(NdArray, Function))
до точно знать, сколько байтов требуется для хранения данных).
После инициализации данных буфер доступен только для чтения, поскольку невозможно безопасно изменить значение без повторной инициализации всех данных.
Публичные методы
статический <T> длинный | ComputeSize ( ByteSequenceProvider <?> byteSequenceProvider) Вычисляет, сколько байтов требуется для хранения данных в строковом буфере. |
Буфер данных <байт[]> | copyTo ( DataBuffer <byte[]> dst, длинный размер) Запишите ссылки на объекты исходного массива в этот буфер. |
байт[] | getObject (длинный индекс) |
<Т> пустота | |
логическое значение | isReadOnly () |
Буфер данных <байт[]> | setObject (значения byte[], длинный индекс) |
длинный | размер () |
Буфер данных <байт[]> | срез (длинный индекс, длинный размер) |
Унаследованные методы
Публичные методы
public static long ComputeSize ( ByteSequenceProvider <?> byteSequenceProvider)
Вычисляет, сколько байтов требуется для хранения данных в строковом буфере.
Параметры
byteSequenceProvider | производит последовательности байтов |
---|
Возврат
- количество байтов, необходимое для хранения данных.
public DataBuffer <byte[]> copyTo ( DataBuffer <byte[]> dst, длинный размер)
Запишите ссылки на объекты исходного массива в этот буфер.
Если значений для копирования больше, чем размер целевого буфера, т. е. size > dst.size()
, значения не передаются и выдается исключение BufferOverflowException. С другой стороны, если копируемых значений больше, чем размер исходного буфера, т. е. > src.size()
, то генерируется исключение BufferUnderfloatException.
В противном случае этот метод копирует значения n = size
из этого буфера в целевой буфер.
Параметры
летнее время | буфер назначения, в который копируются значения; не должно быть этого буфера |
---|---|
размер | количество значений для копирования в целевой буфер |
Возврат
- этот буфер
public byte[] getObject (длинный индекс)
public void init ( ByteSequenceProvider <T> byteSequenceProvider)
Инициализируйте данные этого буфера.
Хотя это не реализуется программно, этот метод обязательно вызывается только один раз после создания буфера. Буфер должен быть выделен в соответствии с тем же набором данных, предварительно вызвав ERROR(/#computeSize(NdArray, Function))
чтобы убедиться, что для его хранения достаточно места.
Параметры
byteSequenceProvider | создает последовательности байтов для использования в качестве тензорных данных |
---|