| 4894 | return self.ops[start:end] |
| 4895 | |
| 4896 | def _prepend_op(self, *args, **kwargs): |
| 4897 | if in_dygraph_mode(): |
| 4898 | type = kwargs.get("type", None) |
| 4899 | attrs = kwargs.get("attrs", {}) |
| 4900 | op = Operator( |
| 4901 | self, None, type=type, inputs=None, outputs=None, attrs=attrs |
| 4902 | ) |
| 4903 | |
| 4904 | _dygraph_tracer().trace_op( |
| 4905 | type, |
| 4906 | kwargs.get("inputs", {}), |
| 4907 | kwargs.get("outputs", {}), |
| 4908 | attrs if attrs else {}, |
| 4909 | kwargs.get("stop_gradient", False), |
| 4910 | ) |
| 4911 | else: |
| 4912 | op_desc = self.desc._prepend_op() |
| 4913 | op = Operator( |
| 4914 | self, |
| 4915 | op_desc, |
| 4916 | type=kwargs.get("type", None), |
| 4917 | inputs=kwargs.get("inputs", None), |
| 4918 | outputs=kwargs.get("outputs", None), |
| 4919 | attrs=kwargs.get("attrs", None), |
| 4920 | ) |
| 4921 | self.ops.insert(0, op) |
| 4922 | |
| 4923 | return op |
| 4924 | |
| 4925 | def _sync_with_cpp(self): |
| 4926 | """ |