| 1962 | } |
| 1963 | |
| 1964 | std::vector<PyObject*> MakeTensorList(PyObject* tensors) { |
| 1965 | PyObject* seq = PySequence_Fast(tensors, "expected a sequence"); |
| 1966 | if (seq == nullptr) { |
| 1967 | return {}; |
| 1968 | } |
| 1969 | int len = PySequence_Fast_GET_SIZE(seq); |
| 1970 | std::vector<PyObject*> list; |
| 1971 | list.reserve(len); |
| 1972 | for (int i = 0; i < len; ++i) { |
| 1973 | list.push_back(PySequence_Fast_GET_ITEM(seq, i)); |
| 1974 | } |
| 1975 | Py_DECREF(seq); |
| 1976 | return list; |
| 1977 | } |
| 1978 | |
| 1979 | PyObject* TFE_Py_TapeGradient(PyObject* tape, PyObject* target, |
| 1980 | PyObject* sources, PyObject* output_gradients, |
no test coverage detected