| 1510 | } |
| 1511 | |
| 1512 | PyObject* TFE_Py_TapeSetNew(PyObject* persistent, |
| 1513 | PyObject* watch_accessed_variables) { |
| 1514 | TFE_Py_Tape_Type.tp_new = PyType_GenericNew; |
| 1515 | if (PyType_Ready(&TFE_Py_Tape_Type) < 0) return nullptr; |
| 1516 | TFE_Py_Tape* tape = PyObject_NEW(TFE_Py_Tape, &TFE_Py_Tape_Type); |
| 1517 | tape->tape = new GradientTape(persistent == Py_True, |
| 1518 | watch_accessed_variables == Py_True); |
| 1519 | Py_INCREF(tape); |
| 1520 | GetTapeSet()->insert(reinterpret_cast<TFE_Py_Tape*>(tape)); |
| 1521 | return reinterpret_cast<PyObject*>(tape); |
| 1522 | } |
| 1523 | |
| 1524 | void TFE_Py_TapeSetAdd(PyObject* tape) { |
| 1525 | Py_INCREF(tape); |