CustomStackTrace¶
class CustomStackTrace¶
- template <typename T>
-
class
paddle::
CustomStackTrace
¶ A ThreadLocal stack for tracing train/test process. (More details of ThreadLocal can be find in the comments of ThreadLocal class.)
For example.
paddle::CustomStackTrace<std::string> stack; for (auto& layer : layers){ stack.push(layer->getName()); layer->forward(); } stack.pop(""); // mark under pop stage. for (auto it = layers.rbegin(); it != layers.rend(); ++it){ auto& layer = *it; layer->backward(passType); stack.pop(layer->getName()); }
Public Types
-
typedef std::function<void(const std::thread::id&, bool *, const T&)>
DumpCallback
¶ DumpCallback Type. It will be invoked many times by dump method.
The first parameter is stack thread id. The second parameter is the last action of stack is push or not. The third parameter is the item in stack.
Public Functions
-
void
pop
(const T &item)¶ Pop out an item from the top of the stack if item == top. Else, just set status to popping.
-
void
clear
()¶ clear current thread stack.
-
bool
empty
() const¶ return true if all thread’s stack is empty.
- Return
- true if empty
-
void
dump
(const DumpCallback &callback, bool onlyCurrentThread = false)¶ Dump all thread stack, and all stack will be cleared.
-
void
push
(const T &item)¶ Push item to current thread stack.
-
typedef std::function<void(const std::thread::id&, bool *, const T&)>