mirror of
https://github.com/zebrajr/pytorch.git
synced 2025-12-07 12:21:27 +01:00
Summary: Pull Request resolved: https://github.com/pytorch/pytorch/pull/21116 ghimport-source-id: 3c47e335dd80f52216e50e0a215cedc1862a9e78 Reviewed By: eellison Differential Revision: D15552816 Pulled By: zdevito fbshipit-source-id: 708fe87439d94117dca0a26c98f0917f497f718f
73 lines
2.2 KiB
C++
73 lines
2.2 KiB
C++
#pragma once
|
|
#include <torch/csrc/WindowsTorchApiMacro.h>
|
|
#include <torch/csrc/jit/ir.h>
|
|
#include <torch/csrc/jit/named_value.h>
|
|
|
|
#include <ATen/core/function_schema.h>
|
|
|
|
namespace torch {
|
|
namespace jit {
|
|
namespace script {
|
|
|
|
// try to match a list if inputs and keyword 'attributes' to this schema,
|
|
// if it works return the flat list of positional inputs to the call
|
|
// if it returns nullopt, then failure_messages contains a good error report
|
|
// set convert_tensor_to_num to true if ImplicitTensorToNums should be inserted
|
|
// to match the schema
|
|
|
|
struct MatchedSchema {
|
|
std::vector<Value*> inputs;
|
|
std::vector<TypePtr> return_types;
|
|
c10::OptNameList return_field_names;
|
|
};
|
|
|
|
TORCH_API c10::optional<MatchedSchema> tryMatchSchema(
|
|
const ::c10::FunctionSchema& schema,
|
|
const SourceRange& loc,
|
|
Graph& graph,
|
|
c10::optional<NamedValue> self,
|
|
at::ArrayRef<NamedValue> args,
|
|
at::ArrayRef<NamedValue> kwargs,
|
|
std::ostream* failure_messages,
|
|
bool allow_conversions);
|
|
|
|
TORCH_API MatchedSchema matchSchema(
|
|
const ::c10::FunctionSchema& schema,
|
|
const SourceRange& loc,
|
|
Graph& graph,
|
|
at::ArrayRef<NamedValue> args,
|
|
at::ArrayRef<NamedValue> kwarg);
|
|
|
|
TORCH_API bool convertibleToList(
|
|
const TypePtr& type,
|
|
const TypePtr& list_type_);
|
|
|
|
TORCH_API Value* emitBuiltinCall(
|
|
const SourceRange& loc,
|
|
Graph& graph,
|
|
Symbol name,
|
|
const c10::optional<NamedValue>& self,
|
|
at::ArrayRef<NamedValue> inputs,
|
|
at::ArrayRef<NamedValue> attributes,
|
|
// if true, emitBuiltinCall will throw an exception if this builtin does not
|
|
// exist, otherwise it will return nullptr if the builtin is not found.
|
|
bool required,
|
|
// should error strings be eager materialized?
|
|
bool render_errors = false);
|
|
|
|
TORCH_API c10::optional<size_t> findInputWithName(
|
|
const std::string& name,
|
|
at::ArrayRef<NamedValue> kwargs);
|
|
|
|
// applies implict conversion from value trying to turn it into type
|
|
// concrete_type it succeeds if the return_value->isSubclassOf(concrete_type)
|
|
TORCH_API Value* tryConvertToType(
|
|
const SourceRange& loc,
|
|
Graph& graph,
|
|
const TypePtr& concrete_type,
|
|
Value* value,
|
|
bool allow_conversions);
|
|
} // namespace script
|
|
} // namespace jit
|
|
} // namespace torch
|