| 515 | } |
| 516 | |
| 517 | void TFE_TensorHandlePrintDebugString(TFE_TensorHandle* handle) { |
| 518 | auto* status = TF_NewStatus(); |
| 519 | if (!TFE_TensorHandleIsConcrete(handle)) { |
| 520 | VLOG(1) << "Symbolic tensor: " << handle; |
| 521 | TF_DeleteStatus(status); |
| 522 | return; |
| 523 | } |
| 524 | |
| 525 | TF_Tensor* t = TFE_TensorHandleResolve(handle, status); |
| 526 | CHECK_EQ(TF_OK, TF_GetCode(status)) << TF_Message(status); |
| 527 | |
| 528 | tensorflow::Tensor dst; |
| 529 | TF_CHECK_OK(TF_TensorToTensor(t, &dst)); |
| 530 | LOG(INFO) << dst.DebugString(); |
| 531 | |
| 532 | TF_DeleteTensor(t); |
| 533 | TF_DeleteStatus(status); |
| 534 | } |
| 535 | |
| 536 | void TFE_OpPrintDebugString(TFE_Op* op) { |
| 537 | VLOG(1) << "TFE_OpPrintDebugString() over " << op; |