diff --git a/nnvm/include/nnvm/tuple.h b/nnvm/include/nnvm/tuple.h
index 353b79ab0641b0959157cd2225d842bdf9b36ce8..c5caa9bd8fe9ca50f463e1eaa1d344cd581aaab5 100644
--- a/nnvm/include/nnvm/tuple.h
+++ b/nnvm/include/nnvm/tuple.h
@@ -611,6 +611,8 @@ struct hash<nnvm::TShape> {
 }  // namespace std
 
 namespace dmlc {
+/*! \brief description for optional TShape */
+DMLC_DECLARE_TYPE_NAME(optional<nnvm::TShape>, "Shape or None");
 // avoid low version of MSVC
 #if !defined(_MSC_VER)
 template<typename T>