36 auto itr = _disposable_back_prop.find(index);
37 if (itr != _disposable_back_prop.end())
38 return itr->second.get();
44 std::unique_ptr<BackPropTensor> tensor)
46 assert(tensor !=
nullptr);
47 auto itr = _disposable_back_prop.find(index);
48 if (itr != _disposable_back_prop.end())
49 throw std::runtime_error{
50 "Tried to set a disposable tensor but another disposable tensor already exists."};
52 _disposable_back_prop[index] = std::move(tensor);
55 const std::unordered_map<DisposableTensorIndex, std::unique_ptr<BackPropTensor>> &
58 return _disposable_back_prop;
63 auto itr = _layer_scope.find(index);
64 if (itr != _layer_scope.end())
71 std::shared_ptr<LayerScopeTensor> &tensor)
73 assert(tensor !=
nullptr);
74 auto itr = _layer_scope.find(index);
75 if (itr != _layer_scope.end())
76 throw std::runtime_error{
77 "Tried to set a layer scope tensor but another layer scope tensor already exists."};
79 _layer_scope[index] = tensor;
82 const std::unordered_map<LayerScopeTensorIndex, std::shared_ptr<LayerScopeTensor>> &
90 std::unordered_map<DisposableTensorIndex, std::unique_ptr<BackPropTensor>> _disposable_back_prop;
91 std::unordered_map<LayerScopeTensorIndex, std::shared_ptr<LayerScopeTensor>> _layer_scope;