|
|
|
@ -312,19 +312,22 @@ void WriteToRecordIO(recordio::Writer *writer,
|
|
|
|
|
writer->Write(buffer.str());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::vector<LoDTensor> ReadFromRecordIO(
|
|
|
|
|
recordio::Scanner *scanner, const platform::DeviceContext &dev_ctx) {
|
|
|
|
|
std::vector<LoDTensor> result;
|
|
|
|
|
if (scanner->HasNext()) {
|
|
|
|
|
bool ReadFromRecordIO(recordio::Scanner *scanner,
|
|
|
|
|
const platform::DeviceContext &dev_ctx,
|
|
|
|
|
std::vector<LoDTensor> *result_ptr) {
|
|
|
|
|
if (!scanner->HasNext()) {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
std::istringstream sin(scanner->Next());
|
|
|
|
|
uint32_t sz;
|
|
|
|
|
sin.read(reinterpret_cast<char *>(&sz), sizeof(uint32_t));
|
|
|
|
|
auto &result = *result_ptr;
|
|
|
|
|
result.resize(sz);
|
|
|
|
|
for (uint32_t i = 0; i < sz; ++i) {
|
|
|
|
|
DeserializeFromStream(sin, &result[i], dev_ctx);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return result;
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
std::vector<LoDTensor> LoDTensor::SplitLoDTensor(
|
|
|
|
|