| 1134 | |
| 1135 | namespace io { |
| 1136 | util::Status LoadModelProto(absl::string_view filename, |
| 1137 | ModelProto *model_proto) { |
| 1138 | if (filename.empty()) { |
| 1139 | return util::NotFoundError("model file path should not be empty."); |
| 1140 | } |
| 1141 | |
| 1142 | auto input = filesystem::NewReadableFile(filename, true); |
| 1143 | RETURN_IF_ERROR(input->status()); |
| 1144 | std::string serialized; |
| 1145 | if (!input->ReadAll(&serialized)) { |
| 1146 | return util::InternalError(absl::StrCat("could not read ", filename)); |
| 1147 | } |
| 1148 | if (!model_proto->ParseFromArray(serialized.data(), serialized.size())) { |
| 1149 | return util::InternalError( |
| 1150 | absl::StrCat("could not parse ModelProto from ", filename)); |
| 1151 | } |
| 1152 | |
| 1153 | return util::OkStatus(); |
| 1154 | } |
| 1155 | |
| 1156 | util::Status SaveModelProto(absl::string_view filename, |
| 1157 | const ModelProto &model_proto) { |