| 151 | } |
| 152 | |
| 153 | void TfDriver::SetInput(const string& values_as_string, |
| 154 | tensorflow::Tensor* tensor) { |
| 155 | int num_values_available = 0; |
| 156 | switch (tensor->dtype()) { |
| 157 | case tensorflow::DT_FLOAT: |
| 158 | num_values_available = |
| 159 | FillTensorWithData<float>(tensor, values_as_string); |
| 160 | break; |
| 161 | case tensorflow::DT_INT32: |
| 162 | num_values_available = |
| 163 | FillTensorWithData<int32_t>(tensor, values_as_string); |
| 164 | break; |
| 165 | case tensorflow::DT_UINT8: |
| 166 | num_values_available = |
| 167 | FillTensorWithData<uint8_t>(tensor, values_as_string); |
| 168 | break; |
| 169 | case tensorflow::DT_STRING: |
| 170 | num_values_available = |
| 171 | FillTensorWithTfLiteHexString(tensor, values_as_string); |
| 172 | break; |
| 173 | default: |
| 174 | Invalidate(absl::StrCat("Unsupported tensor type ", |
| 175 | tensorflow::DataType_Name(tensor->dtype()), |
| 176 | " in SetInput")); |
| 177 | return; |
| 178 | } |
| 179 | |
| 180 | if (tensor->NumElements() != num_values_available) { |
| 181 | Invalidate(absl::StrCat("Needed ", tensor->NumElements(), |
| 182 | " values for input tensor, but was given ", |
| 183 | num_values_available, " instead.")); |
| 184 | } |
| 185 | } |
| 186 | |
| 187 | void TfDriver::SetInput(int id, const string& values_as_string) { |
| 188 | if (!IsValid()) return; |