singa-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From wan...@apache.org
Subject [02/10] incubator-singa git commit: implement shared memory hogwild. update param at worker side
Date Mon, 15 Jun 2015 06:42:30 GMT
http://git-wip-us.apache.org/repos/asf/incubator-singa/blob/806826eb/src/proto/model.pb.h
----------------------------------------------------------------------
diff --git a/src/proto/model.pb.h b/src/proto/model.pb.h
index 6f1dc1d..9ac1e54 100644
--- a/src/proto/model.pb.h
+++ b/src/proto/model.pb.h
@@ -8,12 +8,12 @@
 
 #include <google/protobuf/stubs/common.h>
 
-#if GOOGLE_PROTOBUF_VERSION < 2006000
+#if GOOGLE_PROTOBUF_VERSION < 2005000
 #error This file was generated by a newer version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please update
 #error your headers.
 #endif
-#if 2006000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#if 2005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
 #error This file was generated by an older version of protoc which is
 #error incompatible with your Protocol Buffer headers.  Please
 #error regenerate this file with a newer version of protoc.
@@ -360,6 +360,7 @@ class ModelProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -626,15 +627,13 @@ class ModelProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::std::string* name_;
-  static ::std::string* _default_train_folder_;
   ::std::string* train_folder_;
-  static ::std::string* _default_test_folder_;
+  static ::std::string* _default_train_folder_;
   ::std::string* test_folder_;
-  static ::std::string* _default_validation_folder_;
+  static ::std::string* _default_test_folder_;
   ::std::string* validation_folder_;
+  static ::std::string* _default_validation_folder_;
   ::google::protobuf::int32 display_after_steps_;
   ::google::protobuf::int32 display_frequency_;
   ::google::protobuf::int32 validation_after_steps_;
@@ -654,6 +653,10 @@ class ModelProto : public ::google::protobuf::Message {
   int alg_;
   ::singa::NetProto* neuralnet_;
   ::google::protobuf::int32 warmup_steps_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(23 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -710,6 +713,7 @@ class NetProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -742,10 +746,12 @@ class NetProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::google::protobuf::RepeatedPtrField< ::singa::LayerProto > layer_;
   int partition_type_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -802,6 +808,7 @@ class ParamProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -976,8 +983,6 @@ class ParamProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::std::string* name_;
   ::google::protobuf::RepeatedField< ::google::protobuf::int32 > shape_;
   ::google::protobuf::int32 id_;
@@ -992,6 +997,10 @@ class ParamProto : public ::google::protobuf::Message {
   float std_;
   float learning_rate_multiplier_;
   float weight_decay_multiplier_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(14 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -1048,6 +1057,7 @@ class BlobProtos : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -1099,11 +1109,13 @@ class BlobProtos : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::google::protobuf::RepeatedPtrField< ::singa::BlobProto > blobs_;
   ::google::protobuf::RepeatedField< ::google::protobuf::int32 > ids_;
   ::google::protobuf::RepeatedPtrField< ::std::string> names_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -1160,6 +1172,7 @@ class LayerProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -1476,8 +1489,6 @@ class LayerProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::std::string* name_;
   ::std::string* type_;
   ::google::protobuf::RepeatedPtrField< ::std::string> srclayers_;
@@ -1504,6 +1515,10 @@ class LayerProto : public ::google::protobuf::Message {
   ::singa::SoftmaxLossProto* softmaxloss_param_;
   ::singa::TanhProto* tanh_param_;
   int partition_type_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(26 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -1560,6 +1575,7 @@ class RGBImage : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -1612,12 +1628,14 @@ class RGBImage : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   float scale_;
   ::google::protobuf::int32 cropsize_;
   ::std::string* meanfile_;
   bool mirror_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -1674,6 +1692,7 @@ class SplitProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -1694,9 +1713,11 @@ class SplitProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::google::protobuf::int32 num_splits_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -1753,6 +1774,7 @@ class TanhProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -1782,10 +1804,12 @@ class TanhProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   float outer_scale_;
   float inner_scale_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -1842,6 +1866,7 @@ class SoftmaxLossProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -1871,10 +1896,12 @@ class SoftmaxLossProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::google::protobuf::int32 topk_;
   float scale_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -1931,6 +1958,7 @@ class ConvolutionProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -1987,13 +2015,15 @@ class ConvolutionProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::google::protobuf::uint32 num_filters_;
   bool bias_term_;
   ::google::protobuf::uint32 pad_;
   ::google::protobuf::uint32 stride_;
   ::google::protobuf::uint32 kernel_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(5 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -2050,6 +2080,7 @@ class ConcateProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -2079,10 +2110,12 @@ class ConcateProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::google::protobuf::int32 concate_dimension_;
   ::google::protobuf::int32 concate_num_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -2139,6 +2172,7 @@ class DataProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -2196,12 +2230,14 @@ class DataProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::std::string* source_;
   ::std::string* path_;
   ::google::protobuf::uint32 batchsize_;
   ::google::protobuf::uint32 random_skip_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -2258,6 +2294,7 @@ class MnistProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -2350,8 +2387,6 @@ class MnistProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::google::protobuf::int32 kernel_;
   float sigma_;
   float alpha_;
@@ -2361,6 +2396,10 @@ class MnistProto : public ::google::protobuf::Message {
   ::google::protobuf::int32 elastic_freq_;
   float norm_a_;
   float norm_b_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(9 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -2417,6 +2456,7 @@ class DropoutProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -2437,9 +2477,11 @@ class DropoutProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   float dropout_ratio_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -2496,6 +2538,7 @@ class InnerProductProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -2525,10 +2568,12 @@ class InnerProductProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::google::protobuf::uint32 num_output_;
   bool bias_term_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -2585,6 +2630,7 @@ class LRNProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -2665,13 +2711,15 @@ class LRNProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::google::protobuf::uint32 local_size_;
   float alpha_;
   float beta_;
   int norm_region_;
   float knorm_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(5 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -2728,6 +2776,7 @@ class PoolingProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -2799,12 +2848,14 @@ class PoolingProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   int pool_;
   ::google::protobuf::uint32 kernel_;
   ::google::protobuf::uint32 pad_;
   ::google::protobuf::uint32 stride_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -2861,6 +2912,7 @@ class SliceProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -2890,10 +2942,12 @@ class SliceProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::google::protobuf::int32 slice_dimension_;
   ::google::protobuf::int32 slice_num_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -2950,6 +3004,7 @@ class ReLUProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -2970,9 +3025,11 @@ class ReLUProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   float negative_slope_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -3029,6 +3086,7 @@ class Record : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -3083,10 +3141,12 @@ class Record : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::singa::SingleLabelImageRecord* image_;
   int type_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -3143,6 +3203,7 @@ class Datum : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -3225,8 +3286,6 @@ class Datum : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::google::protobuf::int32 channels_;
   ::google::protobuf::int32 height_;
   ::std::string* data_;
@@ -3234,6 +3293,10 @@ class Datum : public ::google::protobuf::Message {
   ::google::protobuf::int32 label_;
   ::google::protobuf::RepeatedField< float > float_data_;
   bool encoded_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(7 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -3290,6 +3353,7 @@ class SingleLabelImageRecord : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -3348,12 +3412,14 @@ class SingleLabelImageRecord : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::google::protobuf::RepeatedField< ::google::protobuf::int32 > shape_;
   ::std::string* pixel_;
   ::google::protobuf::RepeatedField< float > data_;
   ::google::protobuf::int32 label_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -3410,6 +3476,7 @@ class UpdaterProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -3596,8 +3663,6 @@ class UpdaterProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   float momentum_;
   float weight_decay_;
   float gamma_;
@@ -3610,10 +3675,14 @@ class UpdaterProto : public ::google::protobuf::Message {
   int learning_rate_change_method_;
   ::google::protobuf::int32 sync_frequency_;
   float moving_rate_;
-  static ::std::string* _default_param_type_;
   ::std::string* param_type_;
+  static ::std::string* _default_param_type_;
   ::google::protobuf::RepeatedField< ::google::protobuf::int32 > step_;
   ::google::protobuf::RepeatedField< float > step_lr_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(15 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -3670,6 +3739,7 @@ class BlobProto : public ::google::protobuf::Message {
   void SharedDtor();
   void SetCachedSize(int size) const;
   public:
+
   ::google::protobuf::Metadata GetMetadata() const;
 
   // nested types ----------------------------------------------------
@@ -3741,8 +3811,6 @@ class BlobProto : public ::google::protobuf::Message {
 
   ::google::protobuf::UnknownFieldSet _unknown_fields_;
 
-  ::google::protobuf::uint32 _has_bits_[1];
-  mutable int _cached_size_;
   ::google::protobuf::int32 num_;
   ::google::protobuf::int32 channels_;
   ::google::protobuf::int32 height_;
@@ -3751,6 +3819,10 @@ class BlobProto : public ::google::protobuf::Message {
   mutable int _data_cached_byte_size_;
   ::google::protobuf::RepeatedField< float > diff_;
   mutable int _diff_cached_byte_size_;
+
+  mutable int _cached_size_;
+  ::google::protobuf::uint32 _has_bits_[(6 + 31) / 32];
+
   friend void  protobuf_AddDesc_model_2eproto();
   friend void protobuf_AssignDesc_model_2eproto();
   friend void protobuf_ShutdownFile_model_2eproto();
@@ -3776,59 +3848,54 @@ inline void ModelProto::clear_has_name() {
   _has_bits_[0] &= ~0x00000001u;
 }
 inline void ModelProto::clear_name() {
-  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ != &::google::protobuf::internal::kEmptyString) {
     name_->clear();
   }
   clear_has_name();
 }
 inline const ::std::string& ModelProto::name() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.name)
   return *name_;
 }
 inline void ModelProto::set_name(const ::std::string& value) {
   set_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     name_ = new ::std::string;
   }
   name_->assign(value);
-  // @@protoc_insertion_point(field_set:singa.ModelProto.name)
 }
 inline void ModelProto::set_name(const char* value) {
   set_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     name_ = new ::std::string;
   }
   name_->assign(value);
-  // @@protoc_insertion_point(field_set_char:singa.ModelProto.name)
 }
 inline void ModelProto::set_name(const char* value, size_t size) {
   set_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     name_ = new ::std::string;
   }
   name_->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:singa.ModelProto.name)
 }
 inline ::std::string* ModelProto::mutable_name() {
   set_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     name_ = new ::std::string;
   }
-  // @@protoc_insertion_point(field_mutable:singa.ModelProto.name)
   return name_;
 }
 inline ::std::string* ModelProto::release_name() {
   clear_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     return NULL;
   } else {
     ::std::string* temp = name_;
-    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
     return temp;
   }
 }
 inline void ModelProto::set_allocated_name(::std::string* name) {
-  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ != &::google::protobuf::internal::kEmptyString) {
     delete name_;
   }
   if (name) {
@@ -3836,9 +3903,8 @@ inline void ModelProto::set_allocated_name(::std::string* name) {
     name_ = name;
   } else {
     clear_has_name();
-    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.ModelProto.name)
 }
 
 // optional string train_folder = 2 [default = "train"];
@@ -3858,7 +3924,6 @@ inline void ModelProto::clear_train_folder() {
   clear_has_train_folder();
 }
 inline const ::std::string& ModelProto::train_folder() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.train_folder)
   return *train_folder_;
 }
 inline void ModelProto::set_train_folder(const ::std::string& value) {
@@ -3867,7 +3932,6 @@ inline void ModelProto::set_train_folder(const ::std::string& value) {
     train_folder_ = new ::std::string;
   }
   train_folder_->assign(value);
-  // @@protoc_insertion_point(field_set:singa.ModelProto.train_folder)
 }
 inline void ModelProto::set_train_folder(const char* value) {
   set_has_train_folder();
@@ -3875,7 +3939,6 @@ inline void ModelProto::set_train_folder(const char* value) {
     train_folder_ = new ::std::string;
   }
   train_folder_->assign(value);
-  // @@protoc_insertion_point(field_set_char:singa.ModelProto.train_folder)
 }
 inline void ModelProto::set_train_folder(const char* value, size_t size) {
   set_has_train_folder();
@@ -3883,14 +3946,12 @@ inline void ModelProto::set_train_folder(const char* value, size_t size) {
     train_folder_ = new ::std::string;
   }
   train_folder_->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:singa.ModelProto.train_folder)
 }
 inline ::std::string* ModelProto::mutable_train_folder() {
   set_has_train_folder();
   if (train_folder_ == _default_train_folder_) {
     train_folder_ = new ::std::string(*_default_train_folder_);
   }
-  // @@protoc_insertion_point(field_mutable:singa.ModelProto.train_folder)
   return train_folder_;
 }
 inline ::std::string* ModelProto::release_train_folder() {
@@ -3914,7 +3975,6 @@ inline void ModelProto::set_allocated_train_folder(::std::string* train_folder)
     clear_has_train_folder();
     train_folder_ = const_cast< ::std::string*>(_default_train_folder_);
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.ModelProto.train_folder)
 }
 
 // optional string test_folder = 3 [default = "test"];
@@ -3934,7 +3994,6 @@ inline void ModelProto::clear_test_folder() {
   clear_has_test_folder();
 }
 inline const ::std::string& ModelProto::test_folder() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.test_folder)
   return *test_folder_;
 }
 inline void ModelProto::set_test_folder(const ::std::string& value) {
@@ -3943,7 +4002,6 @@ inline void ModelProto::set_test_folder(const ::std::string& value) {
     test_folder_ = new ::std::string;
   }
   test_folder_->assign(value);
-  // @@protoc_insertion_point(field_set:singa.ModelProto.test_folder)
 }
 inline void ModelProto::set_test_folder(const char* value) {
   set_has_test_folder();
@@ -3951,7 +4009,6 @@ inline void ModelProto::set_test_folder(const char* value) {
     test_folder_ = new ::std::string;
   }
   test_folder_->assign(value);
-  // @@protoc_insertion_point(field_set_char:singa.ModelProto.test_folder)
 }
 inline void ModelProto::set_test_folder(const char* value, size_t size) {
   set_has_test_folder();
@@ -3959,14 +4016,12 @@ inline void ModelProto::set_test_folder(const char* value, size_t size) {
     test_folder_ = new ::std::string;
   }
   test_folder_->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:singa.ModelProto.test_folder)
 }
 inline ::std::string* ModelProto::mutable_test_folder() {
   set_has_test_folder();
   if (test_folder_ == _default_test_folder_) {
     test_folder_ = new ::std::string(*_default_test_folder_);
   }
-  // @@protoc_insertion_point(field_mutable:singa.ModelProto.test_folder)
   return test_folder_;
 }
 inline ::std::string* ModelProto::release_test_folder() {
@@ -3990,7 +4045,6 @@ inline void ModelProto::set_allocated_test_folder(::std::string* test_folder) {
     clear_has_test_folder();
     test_folder_ = const_cast< ::std::string*>(_default_test_folder_);
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.ModelProto.test_folder)
 }
 
 // optional string validation_folder = 4 [default = "validation"];
@@ -4010,7 +4064,6 @@ inline void ModelProto::clear_validation_folder() {
   clear_has_validation_folder();
 }
 inline const ::std::string& ModelProto::validation_folder() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.validation_folder)
   return *validation_folder_;
 }
 inline void ModelProto::set_validation_folder(const ::std::string& value) {
@@ -4019,7 +4072,6 @@ inline void ModelProto::set_validation_folder(const ::std::string& value) {
     validation_folder_ = new ::std::string;
   }
   validation_folder_->assign(value);
-  // @@protoc_insertion_point(field_set:singa.ModelProto.validation_folder)
 }
 inline void ModelProto::set_validation_folder(const char* value) {
   set_has_validation_folder();
@@ -4027,7 +4079,6 @@ inline void ModelProto::set_validation_folder(const char* value) {
     validation_folder_ = new ::std::string;
   }
   validation_folder_->assign(value);
-  // @@protoc_insertion_point(field_set_char:singa.ModelProto.validation_folder)
 }
 inline void ModelProto::set_validation_folder(const char* value, size_t size) {
   set_has_validation_folder();
@@ -4035,14 +4086,12 @@ inline void ModelProto::set_validation_folder(const char* value, size_t size) {
     validation_folder_ = new ::std::string;
   }
   validation_folder_->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:singa.ModelProto.validation_folder)
 }
 inline ::std::string* ModelProto::mutable_validation_folder() {
   set_has_validation_folder();
   if (validation_folder_ == _default_validation_folder_) {
     validation_folder_ = new ::std::string(*_default_validation_folder_);
   }
-  // @@protoc_insertion_point(field_mutable:singa.ModelProto.validation_folder)
   return validation_folder_;
 }
 inline ::std::string* ModelProto::release_validation_folder() {
@@ -4066,7 +4115,6 @@ inline void ModelProto::set_allocated_validation_folder(::std::string* validatio
     clear_has_validation_folder();
     validation_folder_ = const_cast< ::std::string*>(_default_validation_folder_);
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.ModelProto.validation_folder)
 }
 
 // optional int32 display_after_steps = 6 [default = 0];
@@ -4084,13 +4132,11 @@ inline void ModelProto::clear_display_after_steps() {
   clear_has_display_after_steps();
 }
 inline ::google::protobuf::int32 ModelProto::display_after_steps() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.display_after_steps)
   return display_after_steps_;
 }
 inline void ModelProto::set_display_after_steps(::google::protobuf::int32 value) {
   set_has_display_after_steps();
   display_after_steps_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.display_after_steps)
 }
 
 // optional int32 display_frequency = 7 [default = 0];
@@ -4108,13 +4154,11 @@ inline void ModelProto::clear_display_frequency() {
   clear_has_display_frequency();
 }
 inline ::google::protobuf::int32 ModelProto::display_frequency() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.display_frequency)
   return display_frequency_;
 }
 inline void ModelProto::set_display_frequency(::google::protobuf::int32 value) {
   set_has_display_frequency();
   display_frequency_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.display_frequency)
 }
 
 // optional int32 validation_after_steps = 10 [default = 0];
@@ -4132,13 +4176,11 @@ inline void ModelProto::clear_validation_after_steps() {
   clear_has_validation_after_steps();
 }
 inline ::google::protobuf::int32 ModelProto::validation_after_steps() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.validation_after_steps)
   return validation_after_steps_;
 }
 inline void ModelProto::set_validation_after_steps(::google::protobuf::int32 value) {
   set_has_validation_after_steps();
   validation_after_steps_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.validation_after_steps)
 }
 
 // optional int32 validation_frequency = 11 [default = 0];
@@ -4156,13 +4198,11 @@ inline void ModelProto::clear_validation_frequency() {
   clear_has_validation_frequency();
 }
 inline ::google::protobuf::int32 ModelProto::validation_frequency() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.validation_frequency)
   return validation_frequency_;
 }
 inline void ModelProto::set_validation_frequency(::google::protobuf::int32 value) {
   set_has_validation_frequency();
   validation_frequency_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.validation_frequency)
 }
 
 // optional int32 test_after_steps = 13 [default = 0];
@@ -4180,13 +4220,11 @@ inline void ModelProto::clear_test_after_steps() {
   clear_has_test_after_steps();
 }
 inline ::google::protobuf::int32 ModelProto::test_after_steps() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.test_after_steps)
   return test_after_steps_;
 }
 inline void ModelProto::set_test_after_steps(::google::protobuf::int32 value) {
   set_has_test_after_steps();
   test_after_steps_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.test_after_steps)
 }
 
 // optional int32 test_frequency = 14 [default = 0];
@@ -4204,13 +4242,11 @@ inline void ModelProto::clear_test_frequency() {
   clear_has_test_frequency();
 }
 inline ::google::protobuf::int32 ModelProto::test_frequency() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.test_frequency)
   return test_frequency_;
 }
 inline void ModelProto::set_test_frequency(::google::protobuf::int32 value) {
   set_has_test_frequency();
   test_frequency_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.test_frequency)
 }
 
 // optional int32 checkpoint_after_steps = 15 [default = 0];
@@ -4228,13 +4264,11 @@ inline void ModelProto::clear_checkpoint_after_steps() {
   clear_has_checkpoint_after_steps();
 }
 inline ::google::protobuf::int32 ModelProto::checkpoint_after_steps() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.checkpoint_after_steps)
   return checkpoint_after_steps_;
 }
 inline void ModelProto::set_checkpoint_after_steps(::google::protobuf::int32 value) {
   set_has_checkpoint_after_steps();
   checkpoint_after_steps_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.checkpoint_after_steps)
 }
 
 // optional int32 checkpoint_frequency = 16 [default = 0];
@@ -4252,13 +4286,11 @@ inline void ModelProto::clear_checkpoint_frequency() {
   clear_has_checkpoint_frequency();
 }
 inline ::google::protobuf::int32 ModelProto::checkpoint_frequency() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.checkpoint_frequency)
   return checkpoint_frequency_;
 }
 inline void ModelProto::set_checkpoint_frequency(::google::protobuf::int32 value) {
   set_has_checkpoint_frequency();
   checkpoint_frequency_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.checkpoint_frequency)
 }
 
 // optional bool prefetch = 18 [default = true];
@@ -4276,13 +4308,11 @@ inline void ModelProto::clear_prefetch() {
   clear_has_prefetch();
 }
 inline bool ModelProto::prefetch() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.prefetch)
   return prefetch_;
 }
 inline void ModelProto::set_prefetch(bool value) {
   set_has_prefetch();
   prefetch_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.prefetch)
 }
 
 // optional int32 train_steps = 20;
@@ -4300,13 +4330,11 @@ inline void ModelProto::clear_train_steps() {
   clear_has_train_steps();
 }
 inline ::google::protobuf::int32 ModelProto::train_steps() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.train_steps)
   return train_steps_;
 }
 inline void ModelProto::set_train_steps(::google::protobuf::int32 value) {
   set_has_train_steps();
   train_steps_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.train_steps)
 }
 
 // optional int32 validation_steps = 21;
@@ -4324,13 +4352,11 @@ inline void ModelProto::clear_validation_steps() {
   clear_has_validation_steps();
 }
 inline ::google::protobuf::int32 ModelProto::validation_steps() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.validation_steps)
   return validation_steps_;
 }
 inline void ModelProto::set_validation_steps(::google::protobuf::int32 value) {
   set_has_validation_steps();
   validation_steps_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.validation_steps)
 }
 
 // optional int32 test_steps = 22;
@@ -4348,13 +4374,11 @@ inline void ModelProto::clear_test_steps() {
   clear_has_test_steps();
 }
 inline ::google::protobuf::int32 ModelProto::test_steps() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.test_steps)
   return test_steps_;
 }
 inline void ModelProto::set_test_steps(::google::protobuf::int32 value) {
   set_has_test_steps();
   test_steps_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.test_steps)
 }
 
 // optional int32 step = 29 [default = 0];
@@ -4372,13 +4396,11 @@ inline void ModelProto::clear_step() {
   clear_has_step();
 }
 inline ::google::protobuf::int32 ModelProto::step() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.step)
   return step_;
 }
 inline void ModelProto::set_step(::google::protobuf::int32 value) {
   set_has_step();
   step_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.step)
 }
 
 // optional .singa.UpdaterProto updater = 31;
@@ -4396,13 +4418,11 @@ inline void ModelProto::clear_updater() {
   clear_has_updater();
 }
 inline const ::singa::UpdaterProto& ModelProto::updater() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.updater)
   return updater_ != NULL ? *updater_ : *default_instance_->updater_;
 }
 inline ::singa::UpdaterProto* ModelProto::mutable_updater() {
   set_has_updater();
   if (updater_ == NULL) updater_ = new ::singa::UpdaterProto;
-  // @@protoc_insertion_point(field_mutable:singa.ModelProto.updater)
   return updater_;
 }
 inline ::singa::UpdaterProto* ModelProto::release_updater() {
@@ -4419,7 +4439,6 @@ inline void ModelProto::set_allocated_updater(::singa::UpdaterProto* updater) {
   } else {
     clear_has_updater();
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.ModelProto.updater)
 }
 
 // optional .singa.ModelProto.GradCalcAlg alg = 32 [default = kBackPropagation];
@@ -4437,14 +4456,12 @@ inline void ModelProto::clear_alg() {
   clear_has_alg();
 }
 inline ::singa::ModelProto_GradCalcAlg ModelProto::alg() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.alg)
   return static_cast< ::singa::ModelProto_GradCalcAlg >(alg_);
 }
 inline void ModelProto::set_alg(::singa::ModelProto_GradCalcAlg value) {
   assert(::singa::ModelProto_GradCalcAlg_IsValid(value));
   set_has_alg();
   alg_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.alg)
 }
 
 // optional bool hogwild = 33 [default = false];
@@ -4462,13 +4479,11 @@ inline void ModelProto::clear_hogwild() {
   clear_has_hogwild();
 }
 inline bool ModelProto::hogwild() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.hogwild)
   return hogwild_;
 }
 inline void ModelProto::set_hogwild(bool value) {
   set_has_hogwild();
   hogwild_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.hogwild)
 }
 
 // optional .singa.NetProto neuralnet = 40;
@@ -4486,13 +4501,11 @@ inline void ModelProto::clear_neuralnet() {
   clear_has_neuralnet();
 }
 inline const ::singa::NetProto& ModelProto::neuralnet() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.neuralnet)
   return neuralnet_ != NULL ? *neuralnet_ : *default_instance_->neuralnet_;
 }
 inline ::singa::NetProto* ModelProto::mutable_neuralnet() {
   set_has_neuralnet();
   if (neuralnet_ == NULL) neuralnet_ = new ::singa::NetProto;
-  // @@protoc_insertion_point(field_mutable:singa.ModelProto.neuralnet)
   return neuralnet_;
 }
 inline ::singa::NetProto* ModelProto::release_neuralnet() {
@@ -4509,7 +4522,6 @@ inline void ModelProto::set_allocated_neuralnet(::singa::NetProto* neuralnet) {
   } else {
     clear_has_neuralnet();
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.ModelProto.neuralnet)
 }
 
 // optional bool debug = 41 [default = false];
@@ -4527,13 +4539,11 @@ inline void ModelProto::clear_debug() {
   clear_has_debug();
 }
 inline bool ModelProto::debug() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.debug)
   return debug_;
 }
 inline void ModelProto::set_debug(bool value) {
   set_has_debug();
   debug_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.debug)
 }
 
 // optional int32 warmup_steps = 50 [default = 0];
@@ -4551,13 +4561,11 @@ inline void ModelProto::clear_warmup_steps() {
   clear_has_warmup_steps();
 }
 inline ::google::protobuf::int32 ModelProto::warmup_steps() const {
-  // @@protoc_insertion_point(field_get:singa.ModelProto.warmup_steps)
   return warmup_steps_;
 }
 inline void ModelProto::set_warmup_steps(::google::protobuf::int32 value) {
   set_has_warmup_steps();
   warmup_steps_ = value;
-  // @@protoc_insertion_point(field_set:singa.ModelProto.warmup_steps)
 }
 
 // -------------------------------------------------------------------
@@ -4572,25 +4580,20 @@ inline void NetProto::clear_layer() {
   layer_.Clear();
 }
 inline const ::singa::LayerProto& NetProto::layer(int index) const {
-  // @@protoc_insertion_point(field_get:singa.NetProto.layer)
   return layer_.Get(index);
 }
 inline ::singa::LayerProto* NetProto::mutable_layer(int index) {
-  // @@protoc_insertion_point(field_mutable:singa.NetProto.layer)
   return layer_.Mutable(index);
 }
 inline ::singa::LayerProto* NetProto::add_layer() {
-  // @@protoc_insertion_point(field_add:singa.NetProto.layer)
   return layer_.Add();
 }
 inline const ::google::protobuf::RepeatedPtrField< ::singa::LayerProto >&
 NetProto::layer() const {
-  // @@protoc_insertion_point(field_list:singa.NetProto.layer)
   return layer_;
 }
 inline ::google::protobuf::RepeatedPtrField< ::singa::LayerProto >*
 NetProto::mutable_layer() {
-  // @@protoc_insertion_point(field_mutable_list:singa.NetProto.layer)
   return &layer_;
 }
 
@@ -4609,14 +4612,12 @@ inline void NetProto::clear_partition_type() {
   clear_has_partition_type();
 }
 inline ::singa::PartitionType NetProto::partition_type() const {
-  // @@protoc_insertion_point(field_get:singa.NetProto.partition_type)
   return static_cast< ::singa::PartitionType >(partition_type_);
 }
 inline void NetProto::set_partition_type(::singa::PartitionType value) {
   assert(::singa::PartitionType_IsValid(value));
   set_has_partition_type();
   partition_type_ = value;
-  // @@protoc_insertion_point(field_set:singa.NetProto.partition_type)
 }
 
 // -------------------------------------------------------------------
@@ -4634,59 +4635,54 @@ inline void ParamProto::clear_has_name() {
   _has_bits_[0] &= ~0x00000001u;
 }
 inline void ParamProto::clear_name() {
-  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ != &::google::protobuf::internal::kEmptyString) {
     name_->clear();
   }
   clear_has_name();
 }
 inline const ::std::string& ParamProto::name() const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.name)
   return *name_;
 }
 inline void ParamProto::set_name(const ::std::string& value) {
   set_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     name_ = new ::std::string;
   }
   name_->assign(value);
-  // @@protoc_insertion_point(field_set:singa.ParamProto.name)
 }
 inline void ParamProto::set_name(const char* value) {
   set_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     name_ = new ::std::string;
   }
   name_->assign(value);
-  // @@protoc_insertion_point(field_set_char:singa.ParamProto.name)
 }
 inline void ParamProto::set_name(const char* value, size_t size) {
   set_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     name_ = new ::std::string;
   }
   name_->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:singa.ParamProto.name)
 }
 inline ::std::string* ParamProto::mutable_name() {
   set_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     name_ = new ::std::string;
   }
-  // @@protoc_insertion_point(field_mutable:singa.ParamProto.name)
   return name_;
 }
 inline ::std::string* ParamProto::release_name() {
   clear_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     return NULL;
   } else {
     ::std::string* temp = name_;
-    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
     return temp;
   }
 }
 inline void ParamProto::set_allocated_name(::std::string* name) {
-  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ != &::google::protobuf::internal::kEmptyString) {
     delete name_;
   }
   if (name) {
@@ -4694,9 +4690,8 @@ inline void ParamProto::set_allocated_name(::std::string* name) {
     name_ = name;
   } else {
     clear_has_name();
-    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.ParamProto.name)
 }
 
 // optional int32 id = 2;
@@ -4714,13 +4709,11 @@ inline void ParamProto::clear_id() {
   clear_has_id();
 }
 inline ::google::protobuf::int32 ParamProto::id() const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.id)
   return id_;
 }
 inline void ParamProto::set_id(::google::protobuf::int32 value) {
   set_has_id();
   id_ = value;
-  // @@protoc_insertion_point(field_set:singa.ParamProto.id)
 }
 
 // repeated int32 shape = 3;
@@ -4731,25 +4724,20 @@ inline void ParamProto::clear_shape() {
   shape_.Clear();
 }
 inline ::google::protobuf::int32 ParamProto::shape(int index) const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.shape)
   return shape_.Get(index);
 }
 inline void ParamProto::set_shape(int index, ::google::protobuf::int32 value) {
   shape_.Set(index, value);
-  // @@protoc_insertion_point(field_set:singa.ParamProto.shape)
 }
 inline void ParamProto::add_shape(::google::protobuf::int32 value) {
   shape_.Add(value);
-  // @@protoc_insertion_point(field_add:singa.ParamProto.shape)
 }
 inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
 ParamProto::shape() const {
-  // @@protoc_insertion_point(field_list:singa.ParamProto.shape)
   return shape_;
 }
 inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
 ParamProto::mutable_shape() {
-  // @@protoc_insertion_point(field_mutable_list:singa.ParamProto.shape)
   return &shape_;
 }
 
@@ -4768,13 +4756,11 @@ inline void ParamProto::clear_split_threshold() {
   clear_has_split_threshold();
 }
 inline ::google::protobuf::int32 ParamProto::split_threshold() const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.split_threshold)
   return split_threshold_;
 }
 inline void ParamProto::set_split_threshold(::google::protobuf::int32 value) {
   set_has_split_threshold();
   split_threshold_ = value;
-  // @@protoc_insertion_point(field_set:singa.ParamProto.split_threshold)
 }
 
 // optional int32 partition_dim = 5 [default = -1];
@@ -4792,13 +4778,11 @@ inline void ParamProto::clear_partition_dim() {
   clear_has_partition_dim();
 }
 inline ::google::protobuf::int32 ParamProto::partition_dim() const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.partition_dim)
   return partition_dim_;
 }
 inline void ParamProto::set_partition_dim(::google::protobuf::int32 value) {
   set_has_partition_dim();
   partition_dim_ = value;
-  // @@protoc_insertion_point(field_set:singa.ParamProto.partition_dim)
 }
 
 // optional int32 owner = 6;
@@ -4816,13 +4800,11 @@ inline void ParamProto::clear_owner() {
   clear_has_owner();
 }
 inline ::google::protobuf::int32 ParamProto::owner() const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.owner)
   return owner_;
 }
 inline void ParamProto::set_owner(::google::protobuf::int32 value) {
   set_has_owner();
   owner_ = value;
-  // @@protoc_insertion_point(field_set:singa.ParamProto.owner)
 }
 
 // optional .singa.ParamProto.InitMethod init_method = 7 [default = kConstant];
@@ -4840,14 +4822,12 @@ inline void ParamProto::clear_init_method() {
   clear_has_init_method();
 }
 inline ::singa::ParamProto_InitMethod ParamProto::init_method() const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.init_method)
   return static_cast< ::singa::ParamProto_InitMethod >(init_method_);
 }
 inline void ParamProto::set_init_method(::singa::ParamProto_InitMethod value) {
   assert(::singa::ParamProto_InitMethod_IsValid(value));
   set_has_init_method();
   init_method_ = value;
-  // @@protoc_insertion_point(field_set:singa.ParamProto.init_method)
 }
 
 // optional float value = 8 [default = 1];
@@ -4865,13 +4845,11 @@ inline void ParamProto::clear_value() {
   clear_has_value();
 }
 inline float ParamProto::value() const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.value)
   return value_;
 }
 inline void ParamProto::set_value(float value) {
   set_has_value();
   value_ = value;
-  // @@protoc_insertion_point(field_set:singa.ParamProto.value)
 }
 
 // optional float low = 9 [default = -1];
@@ -4889,13 +4867,11 @@ inline void ParamProto::clear_low() {
   clear_has_low();
 }
 inline float ParamProto::low() const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.low)
   return low_;
 }
 inline void ParamProto::set_low(float value) {
   set_has_low();
   low_ = value;
-  // @@protoc_insertion_point(field_set:singa.ParamProto.low)
 }
 
 // optional float high = 10 [default = 1];
@@ -4913,13 +4889,11 @@ inline void ParamProto::clear_high() {
   clear_has_high();
 }
 inline float ParamProto::high() const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.high)
   return high_;
 }
 inline void ParamProto::set_high(float value) {
   set_has_high();
   high_ = value;
-  // @@protoc_insertion_point(field_set:singa.ParamProto.high)
 }
 
 // optional float mean = 11 [default = 0];
@@ -4937,13 +4911,11 @@ inline void ParamProto::clear_mean() {
   clear_has_mean();
 }
 inline float ParamProto::mean() const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.mean)
   return mean_;
 }
 inline void ParamProto::set_mean(float value) {
   set_has_mean();
   mean_ = value;
-  // @@protoc_insertion_point(field_set:singa.ParamProto.mean)
 }
 
 // optional float std = 12 [default = 1];
@@ -4961,13 +4933,11 @@ inline void ParamProto::clear_std() {
   clear_has_std();
 }
 inline float ParamProto::std() const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.std)
   return std_;
 }
 inline void ParamProto::set_std(float value) {
   set_has_std();
   std_ = value;
-  // @@protoc_insertion_point(field_set:singa.ParamProto.std)
 }
 
 // optional float learning_rate_multiplier = 13 [default = 1];
@@ -4985,13 +4955,11 @@ inline void ParamProto::clear_learning_rate_multiplier() {
   clear_has_learning_rate_multiplier();
 }
 inline float ParamProto::learning_rate_multiplier() const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.learning_rate_multiplier)
   return learning_rate_multiplier_;
 }
 inline void ParamProto::set_learning_rate_multiplier(float value) {
   set_has_learning_rate_multiplier();
   learning_rate_multiplier_ = value;
-  // @@protoc_insertion_point(field_set:singa.ParamProto.learning_rate_multiplier)
 }
 
 // optional float weight_decay_multiplier = 14 [default = 1];
@@ -5009,13 +4977,11 @@ inline void ParamProto::clear_weight_decay_multiplier() {
   clear_has_weight_decay_multiplier();
 }
 inline float ParamProto::weight_decay_multiplier() const {
-  // @@protoc_insertion_point(field_get:singa.ParamProto.weight_decay_multiplier)
   return weight_decay_multiplier_;
 }
 inline void ParamProto::set_weight_decay_multiplier(float value) {
   set_has_weight_decay_multiplier();
   weight_decay_multiplier_ = value;
-  // @@protoc_insertion_point(field_set:singa.ParamProto.weight_decay_multiplier)
 }
 
 // -------------------------------------------------------------------
@@ -5030,25 +4996,20 @@ inline void BlobProtos::clear_blobs() {
   blobs_.Clear();
 }
 inline const ::singa::BlobProto& BlobProtos::blobs(int index) const {
-  // @@protoc_insertion_point(field_get:singa.BlobProtos.blobs)
   return blobs_.Get(index);
 }
 inline ::singa::BlobProto* BlobProtos::mutable_blobs(int index) {
-  // @@protoc_insertion_point(field_mutable:singa.BlobProtos.blobs)
   return blobs_.Mutable(index);
 }
 inline ::singa::BlobProto* BlobProtos::add_blobs() {
-  // @@protoc_insertion_point(field_add:singa.BlobProtos.blobs)
   return blobs_.Add();
 }
 inline const ::google::protobuf::RepeatedPtrField< ::singa::BlobProto >&
 BlobProtos::blobs() const {
-  // @@protoc_insertion_point(field_list:singa.BlobProtos.blobs)
   return blobs_;
 }
 inline ::google::protobuf::RepeatedPtrField< ::singa::BlobProto >*
 BlobProtos::mutable_blobs() {
-  // @@protoc_insertion_point(field_mutable_list:singa.BlobProtos.blobs)
   return &blobs_;
 }
 
@@ -5060,25 +5021,20 @@ inline void BlobProtos::clear_ids() {
   ids_.Clear();
 }
 inline ::google::protobuf::int32 BlobProtos::ids(int index) const {
-  // @@protoc_insertion_point(field_get:singa.BlobProtos.ids)
   return ids_.Get(index);
 }
 inline void BlobProtos::set_ids(int index, ::google::protobuf::int32 value) {
   ids_.Set(index, value);
-  // @@protoc_insertion_point(field_set:singa.BlobProtos.ids)
 }
 inline void BlobProtos::add_ids(::google::protobuf::int32 value) {
   ids_.Add(value);
-  // @@protoc_insertion_point(field_add:singa.BlobProtos.ids)
 }
 inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
 BlobProtos::ids() const {
-  // @@protoc_insertion_point(field_list:singa.BlobProtos.ids)
   return ids_;
 }
 inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
 BlobProtos::mutable_ids() {
-  // @@protoc_insertion_point(field_mutable_list:singa.BlobProtos.ids)
   return &ids_;
 }
 
@@ -5090,49 +5046,39 @@ inline void BlobProtos::clear_names() {
   names_.Clear();
 }
 inline const ::std::string& BlobProtos::names(int index) const {
-  // @@protoc_insertion_point(field_get:singa.BlobProtos.names)
   return names_.Get(index);
 }
 inline ::std::string* BlobProtos::mutable_names(int index) {
-  // @@protoc_insertion_point(field_mutable:singa.BlobProtos.names)
   return names_.Mutable(index);
 }
 inline void BlobProtos::set_names(int index, const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:singa.BlobProtos.names)
   names_.Mutable(index)->assign(value);
 }
 inline void BlobProtos::set_names(int index, const char* value) {
   names_.Mutable(index)->assign(value);
-  // @@protoc_insertion_point(field_set_char:singa.BlobProtos.names)
 }
 inline void BlobProtos::set_names(int index, const char* value, size_t size) {
   names_.Mutable(index)->assign(
     reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:singa.BlobProtos.names)
 }
 inline ::std::string* BlobProtos::add_names() {
   return names_.Add();
 }
 inline void BlobProtos::add_names(const ::std::string& value) {
   names_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add:singa.BlobProtos.names)
 }
 inline void BlobProtos::add_names(const char* value) {
   names_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add_char:singa.BlobProtos.names)
 }
 inline void BlobProtos::add_names(const char* value, size_t size) {
   names_.Add()->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_add_pointer:singa.BlobProtos.names)
 }
 inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
 BlobProtos::names() const {
-  // @@protoc_insertion_point(field_list:singa.BlobProtos.names)
   return names_;
 }
 inline ::google::protobuf::RepeatedPtrField< ::std::string>*
 BlobProtos::mutable_names() {
-  // @@protoc_insertion_point(field_mutable_list:singa.BlobProtos.names)
   return &names_;
 }
 
@@ -5151,59 +5097,54 @@ inline void LayerProto::clear_has_name() {
   _has_bits_[0] &= ~0x00000001u;
 }
 inline void LayerProto::clear_name() {
-  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ != &::google::protobuf::internal::kEmptyString) {
     name_->clear();
   }
   clear_has_name();
 }
 inline const ::std::string& LayerProto::name() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.name)
   return *name_;
 }
 inline void LayerProto::set_name(const ::std::string& value) {
   set_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     name_ = new ::std::string;
   }
   name_->assign(value);
-  // @@protoc_insertion_point(field_set:singa.LayerProto.name)
 }
 inline void LayerProto::set_name(const char* value) {
   set_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     name_ = new ::std::string;
   }
   name_->assign(value);
-  // @@protoc_insertion_point(field_set_char:singa.LayerProto.name)
 }
 inline void LayerProto::set_name(const char* value, size_t size) {
   set_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     name_ = new ::std::string;
   }
   name_->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:singa.LayerProto.name)
 }
 inline ::std::string* LayerProto::mutable_name() {
   set_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     name_ = new ::std::string;
   }
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.name)
   return name_;
 }
 inline ::std::string* LayerProto::release_name() {
   clear_has_name();
-  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ == &::google::protobuf::internal::kEmptyString) {
     return NULL;
   } else {
     ::std::string* temp = name_;
-    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
     return temp;
   }
 }
 inline void LayerProto::set_allocated_name(::std::string* name) {
-  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (name_ != &::google::protobuf::internal::kEmptyString) {
     delete name_;
   }
   if (name) {
@@ -5211,9 +5152,8 @@ inline void LayerProto::set_allocated_name(::std::string* name) {
     name_ = name;
   } else {
     clear_has_name();
-    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.LayerProto.name)
 }
 
 // optional string type = 2;
@@ -5227,59 +5167,54 @@ inline void LayerProto::clear_has_type() {
   _has_bits_[0] &= ~0x00000002u;
 }
 inline void LayerProto::clear_type() {
-  if (type_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (type_ != &::google::protobuf::internal::kEmptyString) {
     type_->clear();
   }
   clear_has_type();
 }
 inline const ::std::string& LayerProto::type() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.type)
   return *type_;
 }
 inline void LayerProto::set_type(const ::std::string& value) {
   set_has_type();
-  if (type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (type_ == &::google::protobuf::internal::kEmptyString) {
     type_ = new ::std::string;
   }
   type_->assign(value);
-  // @@protoc_insertion_point(field_set:singa.LayerProto.type)
 }
 inline void LayerProto::set_type(const char* value) {
   set_has_type();
-  if (type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (type_ == &::google::protobuf::internal::kEmptyString) {
     type_ = new ::std::string;
   }
   type_->assign(value);
-  // @@protoc_insertion_point(field_set_char:singa.LayerProto.type)
 }
 inline void LayerProto::set_type(const char* value, size_t size) {
   set_has_type();
-  if (type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (type_ == &::google::protobuf::internal::kEmptyString) {
     type_ = new ::std::string;
   }
   type_->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:singa.LayerProto.type)
 }
 inline ::std::string* LayerProto::mutable_type() {
   set_has_type();
-  if (type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (type_ == &::google::protobuf::internal::kEmptyString) {
     type_ = new ::std::string;
   }
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.type)
   return type_;
 }
 inline ::std::string* LayerProto::release_type() {
   clear_has_type();
-  if (type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (type_ == &::google::protobuf::internal::kEmptyString) {
     return NULL;
   } else {
     ::std::string* temp = type_;
-    type_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    type_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
     return temp;
   }
 }
 inline void LayerProto::set_allocated_type(::std::string* type) {
-  if (type_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (type_ != &::google::protobuf::internal::kEmptyString) {
     delete type_;
   }
   if (type) {
@@ -5287,9 +5222,8 @@ inline void LayerProto::set_allocated_type(::std::string* type) {
     type_ = type;
   } else {
     clear_has_type();
-    type_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    type_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.LayerProto.type)
 }
 
 // repeated string srclayers = 3;
@@ -5300,49 +5234,39 @@ inline void LayerProto::clear_srclayers() {
   srclayers_.Clear();
 }
 inline const ::std::string& LayerProto::srclayers(int index) const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.srclayers)
   return srclayers_.Get(index);
 }
 inline ::std::string* LayerProto::mutable_srclayers(int index) {
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.srclayers)
   return srclayers_.Mutable(index);
 }
 inline void LayerProto::set_srclayers(int index, const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:singa.LayerProto.srclayers)
   srclayers_.Mutable(index)->assign(value);
 }
 inline void LayerProto::set_srclayers(int index, const char* value) {
   srclayers_.Mutable(index)->assign(value);
-  // @@protoc_insertion_point(field_set_char:singa.LayerProto.srclayers)
 }
 inline void LayerProto::set_srclayers(int index, const char* value, size_t size) {
   srclayers_.Mutable(index)->assign(
     reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:singa.LayerProto.srclayers)
 }
 inline ::std::string* LayerProto::add_srclayers() {
   return srclayers_.Add();
 }
 inline void LayerProto::add_srclayers(const ::std::string& value) {
   srclayers_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add:singa.LayerProto.srclayers)
 }
 inline void LayerProto::add_srclayers(const char* value) {
   srclayers_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add_char:singa.LayerProto.srclayers)
 }
 inline void LayerProto::add_srclayers(const char* value, size_t size) {
   srclayers_.Add()->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_add_pointer:singa.LayerProto.srclayers)
 }
 inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
 LayerProto::srclayers() const {
-  // @@protoc_insertion_point(field_list:singa.LayerProto.srclayers)
   return srclayers_;
 }
 inline ::google::protobuf::RepeatedPtrField< ::std::string>*
 LayerProto::mutable_srclayers() {
-  // @@protoc_insertion_point(field_mutable_list:singa.LayerProto.srclayers)
   return &srclayers_;
 }
 
@@ -5361,13 +5285,11 @@ inline void LayerProto::clear_locationid() {
   clear_has_locationid();
 }
 inline ::google::protobuf::int32 LayerProto::locationid() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.locationid)
   return locationid_;
 }
 inline void LayerProto::set_locationid(::google::protobuf::int32 value) {
   set_has_locationid();
   locationid_ = value;
-  // @@protoc_insertion_point(field_set:singa.LayerProto.locationid)
 }
 
 // optional int32 partitionid = 5 [default = 0];
@@ -5385,13 +5307,11 @@ inline void LayerProto::clear_partitionid() {
   clear_has_partitionid();
 }
 inline ::google::protobuf::int32 LayerProto::partitionid() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.partitionid)
   return partitionid_;
 }
 inline void LayerProto::set_partitionid(::google::protobuf::int32 value) {
   set_has_partitionid();
   partitionid_ = value;
-  // @@protoc_insertion_point(field_set:singa.LayerProto.partitionid)
 }
 
 // optional .singa.PartitionType partition_type = 6;
@@ -5409,14 +5329,12 @@ inline void LayerProto::clear_partition_type() {
   clear_has_partition_type();
 }
 inline ::singa::PartitionType LayerProto::partition_type() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.partition_type)
   return static_cast< ::singa::PartitionType >(partition_type_);
 }
 inline void LayerProto::set_partition_type(::singa::PartitionType value) {
   assert(::singa::PartitionType_IsValid(value));
   set_has_partition_type();
   partition_type_ = value;
-  // @@protoc_insertion_point(field_set:singa.LayerProto.partition_type)
 }
 
 // optional string datablob = 7;
@@ -5430,59 +5348,54 @@ inline void LayerProto::clear_has_datablob() {
   _has_bits_[0] &= ~0x00000040u;
 }
 inline void LayerProto::clear_datablob() {
-  if (datablob_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (datablob_ != &::google::protobuf::internal::kEmptyString) {
     datablob_->clear();
   }
   clear_has_datablob();
 }
 inline const ::std::string& LayerProto::datablob() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.datablob)
   return *datablob_;
 }
 inline void LayerProto::set_datablob(const ::std::string& value) {
   set_has_datablob();
-  if (datablob_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (datablob_ == &::google::protobuf::internal::kEmptyString) {
     datablob_ = new ::std::string;
   }
   datablob_->assign(value);
-  // @@protoc_insertion_point(field_set:singa.LayerProto.datablob)
 }
 inline void LayerProto::set_datablob(const char* value) {
   set_has_datablob();
-  if (datablob_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (datablob_ == &::google::protobuf::internal::kEmptyString) {
     datablob_ = new ::std::string;
   }
   datablob_->assign(value);
-  // @@protoc_insertion_point(field_set_char:singa.LayerProto.datablob)
 }
 inline void LayerProto::set_datablob(const char* value, size_t size) {
   set_has_datablob();
-  if (datablob_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (datablob_ == &::google::protobuf::internal::kEmptyString) {
     datablob_ = new ::std::string;
   }
   datablob_->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:singa.LayerProto.datablob)
 }
 inline ::std::string* LayerProto::mutable_datablob() {
   set_has_datablob();
-  if (datablob_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (datablob_ == &::google::protobuf::internal::kEmptyString) {
     datablob_ = new ::std::string;
   }
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.datablob)
   return datablob_;
 }
 inline ::std::string* LayerProto::release_datablob() {
   clear_has_datablob();
-  if (datablob_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (datablob_ == &::google::protobuf::internal::kEmptyString) {
     return NULL;
   } else {
     ::std::string* temp = datablob_;
-    datablob_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    datablob_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
     return temp;
   }
 }
 inline void LayerProto::set_allocated_datablob(::std::string* datablob) {
-  if (datablob_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+  if (datablob_ != &::google::protobuf::internal::kEmptyString) {
     delete datablob_;
   }
   if (datablob) {
@@ -5490,9 +5403,8 @@ inline void LayerProto::set_allocated_datablob(::std::string* datablob) {
     datablob_ = datablob;
   } else {
     clear_has_datablob();
-    datablob_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+    datablob_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.LayerProto.datablob)
 }
 
 // repeated string share_ary = 11;
@@ -5503,49 +5415,39 @@ inline void LayerProto::clear_share_ary() {
   share_ary_.Clear();
 }
 inline const ::std::string& LayerProto::share_ary(int index) const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.share_ary)
   return share_ary_.Get(index);
 }
 inline ::std::string* LayerProto::mutable_share_ary(int index) {
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.share_ary)
   return share_ary_.Mutable(index);
 }
 inline void LayerProto::set_share_ary(int index, const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:singa.LayerProto.share_ary)
   share_ary_.Mutable(index)->assign(value);
 }
 inline void LayerProto::set_share_ary(int index, const char* value) {
   share_ary_.Mutable(index)->assign(value);
-  // @@protoc_insertion_point(field_set_char:singa.LayerProto.share_ary)
 }
 inline void LayerProto::set_share_ary(int index, const char* value, size_t size) {
   share_ary_.Mutable(index)->assign(
     reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:singa.LayerProto.share_ary)
 }
 inline ::std::string* LayerProto::add_share_ary() {
   return share_ary_.Add();
 }
 inline void LayerProto::add_share_ary(const ::std::string& value) {
   share_ary_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add:singa.LayerProto.share_ary)
 }
 inline void LayerProto::add_share_ary(const char* value) {
   share_ary_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add_char:singa.LayerProto.share_ary)
 }
 inline void LayerProto::add_share_ary(const char* value, size_t size) {
   share_ary_.Add()->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_add_pointer:singa.LayerProto.share_ary)
 }
 inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
 LayerProto::share_ary() const {
-  // @@protoc_insertion_point(field_list:singa.LayerProto.share_ary)
   return share_ary_;
 }
 inline ::google::protobuf::RepeatedPtrField< ::std::string>*
 LayerProto::mutable_share_ary() {
-  // @@protoc_insertion_point(field_mutable_list:singa.LayerProto.share_ary)
   return &share_ary_;
 }
 
@@ -5557,25 +5459,20 @@ inline void LayerProto::clear_param() {
   param_.Clear();
 }
 inline const ::singa::ParamProto& LayerProto::param(int index) const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.param)
   return param_.Get(index);
 }
 inline ::singa::ParamProto* LayerProto::mutable_param(int index) {
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.param)
   return param_.Mutable(index);
 }
 inline ::singa::ParamProto* LayerProto::add_param() {
-  // @@protoc_insertion_point(field_add:singa.LayerProto.param)
   return param_.Add();
 }
 inline const ::google::protobuf::RepeatedPtrField< ::singa::ParamProto >&
 LayerProto::param() const {
-  // @@protoc_insertion_point(field_list:singa.LayerProto.param)
   return param_;
 }
 inline ::google::protobuf::RepeatedPtrField< ::singa::ParamProto >*
 LayerProto::mutable_param() {
-  // @@protoc_insertion_point(field_mutable_list:singa.LayerProto.param)
   return &param_;
 }
 
@@ -5587,49 +5484,39 @@ inline void LayerProto::clear_share_param() {
   share_param_.Clear();
 }
 inline const ::std::string& LayerProto::share_param(int index) const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.share_param)
   return share_param_.Get(index);
 }
 inline ::std::string* LayerProto::mutable_share_param(int index) {
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.share_param)
   return share_param_.Mutable(index);
 }
 inline void LayerProto::set_share_param(int index, const ::std::string& value) {
-  // @@protoc_insertion_point(field_set:singa.LayerProto.share_param)
   share_param_.Mutable(index)->assign(value);
 }
 inline void LayerProto::set_share_param(int index, const char* value) {
   share_param_.Mutable(index)->assign(value);
-  // @@protoc_insertion_point(field_set_char:singa.LayerProto.share_param)
 }
 inline void LayerProto::set_share_param(int index, const char* value, size_t size) {
   share_param_.Mutable(index)->assign(
     reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_set_pointer:singa.LayerProto.share_param)
 }
 inline ::std::string* LayerProto::add_share_param() {
   return share_param_.Add();
 }
 inline void LayerProto::add_share_param(const ::std::string& value) {
   share_param_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add:singa.LayerProto.share_param)
 }
 inline void LayerProto::add_share_param(const char* value) {
   share_param_.Add()->assign(value);
-  // @@protoc_insertion_point(field_add_char:singa.LayerProto.share_param)
 }
 inline void LayerProto::add_share_param(const char* value, size_t size) {
   share_param_.Add()->assign(reinterpret_cast<const char*>(value), size);
-  // @@protoc_insertion_point(field_add_pointer:singa.LayerProto.share_param)
 }
 inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
 LayerProto::share_param() const {
-  // @@protoc_insertion_point(field_list:singa.LayerProto.share_param)
   return share_param_;
 }
 inline ::google::protobuf::RepeatedPtrField< ::std::string>*
 LayerProto::mutable_share_param() {
-  // @@protoc_insertion_point(field_mutable_list:singa.LayerProto.share_param)
   return &share_param_;
 }
 
@@ -5641,27 +5528,22 @@ inline void LayerProto::clear_exclude() {
   exclude_.Clear();
 }
 inline ::singa::Phase LayerProto::exclude(int index) const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.exclude)
   return static_cast< ::singa::Phase >(exclude_.Get(index));
 }
 inline void LayerProto::set_exclude(int index, ::singa::Phase value) {
   assert(::singa::Phase_IsValid(value));
   exclude_.Set(index, value);
-  // @@protoc_insertion_point(field_set:singa.LayerProto.exclude)
 }
 inline void LayerProto::add_exclude(::singa::Phase value) {
   assert(::singa::Phase_IsValid(value));
   exclude_.Add(value);
-  // @@protoc_insertion_point(field_add:singa.LayerProto.exclude)
 }
 inline const ::google::protobuf::RepeatedField<int>&
 LayerProto::exclude() const {
-  // @@protoc_insertion_point(field_list:singa.LayerProto.exclude)
   return exclude_;
 }
 inline ::google::protobuf::RepeatedField<int>*
 LayerProto::mutable_exclude() {
-  // @@protoc_insertion_point(field_mutable_list:singa.LayerProto.exclude)
   return &exclude_;
 }
 
@@ -5680,13 +5562,11 @@ inline void LayerProto::clear_convolution_param() {
   clear_has_convolution_param();
 }
 inline const ::singa::ConvolutionProto& LayerProto::convolution_param() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.convolution_param)
   return convolution_param_ != NULL ? *convolution_param_ : *default_instance_->convolution_param_;
 }
 inline ::singa::ConvolutionProto* LayerProto::mutable_convolution_param() {
   set_has_convolution_param();
   if (convolution_param_ == NULL) convolution_param_ = new ::singa::ConvolutionProto;
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.convolution_param)
   return convolution_param_;
 }
 inline ::singa::ConvolutionProto* LayerProto::release_convolution_param() {
@@ -5703,7 +5583,6 @@ inline void LayerProto::set_allocated_convolution_param(::singa::ConvolutionProt
   } else {
     clear_has_convolution_param();
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.LayerProto.convolution_param)
 }
 
 // optional .singa.ConcateProto concate_param = 31;
@@ -5721,13 +5600,11 @@ inline void LayerProto::clear_concate_param() {
   clear_has_concate_param();
 }
 inline const ::singa::ConcateProto& LayerProto::concate_param() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.concate_param)
   return concate_param_ != NULL ? *concate_param_ : *default_instance_->concate_param_;
 }
 inline ::singa::ConcateProto* LayerProto::mutable_concate_param() {
   set_has_concate_param();
   if (concate_param_ == NULL) concate_param_ = new ::singa::ConcateProto;
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.concate_param)
   return concate_param_;
 }
 inline ::singa::ConcateProto* LayerProto::release_concate_param() {
@@ -5744,7 +5621,6 @@ inline void LayerProto::set_allocated_concate_param(::singa::ConcateProto* conca
   } else {
     clear_has_concate_param();
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.LayerProto.concate_param)
 }
 
 // optional .singa.DataProto data_param = 22;
@@ -5762,13 +5638,11 @@ inline void LayerProto::clear_data_param() {
   clear_has_data_param();
 }
 inline const ::singa::DataProto& LayerProto::data_param() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.data_param)
   return data_param_ != NULL ? *data_param_ : *default_instance_->data_param_;
 }
 inline ::singa::DataProto* LayerProto::mutable_data_param() {
   set_has_data_param();
   if (data_param_ == NULL) data_param_ = new ::singa::DataProto;
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.data_param)
   return data_param_;
 }
 inline ::singa::DataProto* LayerProto::release_data_param() {
@@ -5785,7 +5659,6 @@ inline void LayerProto::set_allocated_data_param(::singa::DataProto* data_param)
   } else {
     clear_has_data_param();
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.LayerProto.data_param)
 }
 
 // optional .singa.DropoutProto dropout_param = 23;
@@ -5803,13 +5676,11 @@ inline void LayerProto::clear_dropout_param() {
   clear_has_dropout_param();
 }
 inline const ::singa::DropoutProto& LayerProto::dropout_param() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.dropout_param)
   return dropout_param_ != NULL ? *dropout_param_ : *default_instance_->dropout_param_;
 }
 inline ::singa::DropoutProto* LayerProto::mutable_dropout_param() {
   set_has_dropout_param();
   if (dropout_param_ == NULL) dropout_param_ = new ::singa::DropoutProto;
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.dropout_param)
   return dropout_param_;
 }
 inline ::singa::DropoutProto* LayerProto::release_dropout_param() {
@@ -5826,7 +5697,6 @@ inline void LayerProto::set_allocated_dropout_param(::singa::DropoutProto* dropo
   } else {
     clear_has_dropout_param();
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.LayerProto.dropout_param)
 }
 
 // optional .singa.InnerProductProto inner_product_param = 24;
@@ -5844,13 +5714,11 @@ inline void LayerProto::clear_inner_product_param() {
   clear_has_inner_product_param();
 }
 inline const ::singa::InnerProductProto& LayerProto::inner_product_param() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.inner_product_param)
   return inner_product_param_ != NULL ? *inner_product_param_ : *default_instance_->inner_product_param_;
 }
 inline ::singa::InnerProductProto* LayerProto::mutable_inner_product_param() {
   set_has_inner_product_param();
   if (inner_product_param_ == NULL) inner_product_param_ = new ::singa::InnerProductProto;
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.inner_product_param)
   return inner_product_param_;
 }
 inline ::singa::InnerProductProto* LayerProto::release_inner_product_param() {
@@ -5867,7 +5735,6 @@ inline void LayerProto::set_allocated_inner_product_param(::singa::InnerProductP
   } else {
     clear_has_inner_product_param();
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.LayerProto.inner_product_param)
 }
 
 // optional .singa.LRNProto lrn_param = 25;
@@ -5885,13 +5752,11 @@ inline void LayerProto::clear_lrn_param() {
   clear_has_lrn_param();
 }
 inline const ::singa::LRNProto& LayerProto::lrn_param() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.lrn_param)
   return lrn_param_ != NULL ? *lrn_param_ : *default_instance_->lrn_param_;
 }
 inline ::singa::LRNProto* LayerProto::mutable_lrn_param() {
   set_has_lrn_param();
   if (lrn_param_ == NULL) lrn_param_ = new ::singa::LRNProto;
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.lrn_param)
   return lrn_param_;
 }
 inline ::singa::LRNProto* LayerProto::release_lrn_param() {
@@ -5908,7 +5773,6 @@ inline void LayerProto::set_allocated_lrn_param(::singa::LRNProto* lrn_param) {
   } else {
     clear_has_lrn_param();
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.LayerProto.lrn_param)
 }
 
 // optional .singa.MnistProto mnist_param = 26;
@@ -5926,13 +5790,11 @@ inline void LayerProto::clear_mnist_param() {
   clear_has_mnist_param();
 }
 inline const ::singa::MnistProto& LayerProto::mnist_param() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.mnist_param)
   return mnist_param_ != NULL ? *mnist_param_ : *default_instance_->mnist_param_;
 }
 inline ::singa::MnistProto* LayerProto::mutable_mnist_param() {
   set_has_mnist_param();
   if (mnist_param_ == NULL) mnist_param_ = new ::singa::MnistProto;
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.mnist_param)
   return mnist_param_;
 }
 inline ::singa::MnistProto* LayerProto::release_mnist_param() {
@@ -5949,7 +5811,6 @@ inline void LayerProto::set_allocated_mnist_param(::singa::MnistProto* mnist_par
   } else {
     clear_has_mnist_param();
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.LayerProto.mnist_param)
 }
 
 // optional .singa.PoolingProto pooling_param = 27;
@@ -5967,13 +5828,11 @@ inline void LayerProto::clear_pooling_param() {
   clear_has_pooling_param();
 }
 inline const ::singa::PoolingProto& LayerProto::pooling_param() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.pooling_param)
   return pooling_param_ != NULL ? *pooling_param_ : *default_instance_->pooling_param_;
 }
 inline ::singa::PoolingProto* LayerProto::mutable_pooling_param() {
   set_has_pooling_param();
   if (pooling_param_ == NULL) pooling_param_ = new ::singa::PoolingProto;
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.pooling_param)
   return pooling_param_;
 }
 inline ::singa::PoolingProto* LayerProto::release_pooling_param() {
@@ -5990,7 +5849,6 @@ inline void LayerProto::set_allocated_pooling_param(::singa::PoolingProto* pooli
   } else {
     clear_has_pooling_param();
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.LayerProto.pooling_param)
 }
 
 // repeated .singa.LayerProto sublayers = 35;
@@ -6001,25 +5859,20 @@ inline void LayerProto::clear_sublayers() {
   sublayers_.Clear();
 }
 inline const ::singa::LayerProto& LayerProto::sublayers(int index) const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.sublayers)
   return sublayers_.Get(index);
 }
 inline ::singa::LayerProto* LayerProto::mutable_sublayers(int index) {
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.sublayers)
   return sublayers_.Mutable(index);
 }
 inline ::singa::LayerProto* LayerProto::add_sublayers() {
-  // @@protoc_insertion_point(field_add:singa.LayerProto.sublayers)
   return sublayers_.Add();
 }
 inline const ::google::protobuf::RepeatedPtrField< ::singa::LayerProto >&
 LayerProto::sublayers() const {
-  // @@protoc_insertion_point(field_list:singa.LayerProto.sublayers)
   return sublayers_;
 }
 inline ::google::protobuf::RepeatedPtrField< ::singa::LayerProto >*
 LayerProto::mutable_sublayers() {
-  // @@protoc_insertion_point(field_mutable_list:singa.LayerProto.sublayers)
   return &sublayers_;
 }
 
@@ -6038,13 +5891,11 @@ inline void LayerProto::clear_slice_param() {
   clear_has_slice_param();
 }
 inline const ::singa::SliceProto& LayerProto::slice_param() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.slice_param)
   return slice_param_ != NULL ? *slice_param_ : *default_instance_->slice_param_;
 }
 inline ::singa::SliceProto* LayerProto::mutable_slice_param() {
   set_has_slice_param();
   if (slice_param_ == NULL) slice_param_ = new ::singa::SliceProto;
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.slice_param)
   return slice_param_;
 }
 inline ::singa::SliceProto* LayerProto::release_slice_param() {
@@ -6061,7 +5912,6 @@ inline void LayerProto::set_allocated_slice_param(::singa::SliceProto* slice_par
   } else {
     clear_has_slice_param();
   }
-  // @@protoc_insertion_point(field_set_allocated:singa.LayerProto.slice_param)
 }
 
 // optional .singa.SplitProto split_param = 33;
@@ -6079,13 +5929,11 @@ inline void LayerProto::clear_split_param() {
   clear_has_split_param();
 }
 inline const ::singa::SplitProto& LayerProto::split_param() const {
-  // @@protoc_insertion_point(field_get:singa.LayerProto.split_param)
   return split_param_ != NULL ? *split_param_ : *default_instance_->split_param_;
 }
 inline ::singa::SplitProto* LayerProto::mutable_split_param() {
   set_has_split_param();
   if (split_param_ == NULL) split_param_ = new ::singa::SplitProto;
-  // @@protoc_insertion_point(field_mutable:singa.LayerProto.split_param)
   return split_param_;
 }
 inline ::singa::SplitProto* LayerProto::release_split_param() {
@@ -6102,7 +5950,6 @@ inline void LayerProto::set_allocated_split_param(::singa::SplitProto* split_par
   } else {
     clear_has_split_param();
 

<TRUNCATED>


Mime
View raw message