OptionalArray Class — pytorch Architecture
Architecture documentation for the OptionalArray class in ivalue.h from the pytorch codebase.
Entity Profile
Source Code
aten/src/ATen/core/ivalue.h lines 97–137
template <typename T>
struct OptionalArray {
std::optional<std::vector<T>> list;
OptionalArray() = default;
OptionalArray(std::vector<T> val) : list(std::move(val)) {}
// Used when saving an argument for the backwards pass.
OptionalArray& operator=(std::optional<ArrayRef<T>> ref) {
if (ref) {
list = std::vector<T>(ref->begin(), ref->end());
} else {
list = std::nullopt;
}
return *this;
}
// Used when saving an argument for the backwards pass.
OptionalArray& operator=(c10::OptionalArrayRef<T> ref) {
if (ref) {
list = std::vector<T>(ref->begin(), ref->end());
} else {
list = std::nullopt;
}
return *this;
}
operator std::optional<c10::ArrayRef<T>>() {
if (!list) {
return std::nullopt;
}
return *list;
}
operator c10::OptionalArrayRef<T>() {
if (!list) {
return std::nullopt;
}
return *list;
}
};
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free