pytorch/torch/csrc/jit/python/python_tracer.h
Wanchao Liang 999d7f6ab2 [jit] tracer flag to guard risky behaivors (#36277)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/36277

This PR introduce a flag to the tracer that guard the risky behaviors
like adding list/dict as output of the tracer. Currently to ensure not
BC breaking user, we throw warning if the tracer output is list, and
will throw error when the tracer output is dict to enforce using this
flag (next PR)

Test Plan: Imported from OSS

Differential Revision: D20998157

Pulled By: wanchaol

fbshipit-source-id: 0d2c55f1a263a48b1b92dd6ad54407815e0a6f72
2020-04-13 22:35:03 -07:00

38 lines
900 B
C++

#pragma once
#include <torch/csrc/jit/frontend/source_range.h>
#include <torch/csrc/jit/frontend/tracer.h>
#include <torch/csrc/python_headers.h>
#include <torch/csrc/utils/pybind.h>
#include <memory>
#include <string>
namespace torch {
namespace jit {
struct Module;
namespace tracer {
void initPythonTracerBindings(PyObject* module);
std::string getPythonInterpreterStackTrace();
SourceRange getPythonInterpreterSourceRange();
Node* preRecordPythonTrace(
THPObjectPtr pyobj,
const std::string& arg_types,
at::ArrayRef<autograd::Variable> inputs,
std::vector<THPObjectPtr> scalar_args);
std::pair<std::shared_ptr<Graph>, Stack> createGraphByTracing(
const py::function& func,
Stack inputs,
const py::function& var_name_lookup_fn,
bool strict,
bool force_outplace,
Module* self = nullptr);
} // namespace tracer
} // namespace jit
} // namespace torch