Apache SINGA
A distributed deep learning platform .
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Macros
model.pb.h
1 // Generated by the protocol buffer compiler. DO NOT EDIT!
2 // source: model.proto
3 
4 #ifndef PROTOBUF_model_2eproto__INCLUDED
5 #define PROTOBUF_model_2eproto__INCLUDED
6 
7 #include <string>
8 
9 #include <google/protobuf/stubs/common.h>
10 
11 #if GOOGLE_PROTOBUF_VERSION < 2005000
12 #error This file was generated by a newer version of protoc which is
13 #error incompatible with your Protocol Buffer headers. Please update
14 #error your headers.
15 #endif
16 #if 2005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
17 #error This file was generated by an older version of protoc which is
18 #error incompatible with your Protocol Buffer headers. Please
19 #error regenerate this file with a newer version of protoc.
20 #endif
21 
22 #include <google/protobuf/generated_message_util.h>
23 #include <google/protobuf/message.h>
24 #include <google/protobuf/repeated_field.h>
25 #include <google/protobuf/extension_set.h>
26 #include <google/protobuf/generated_enum_reflection.h>
27 #include <google/protobuf/unknown_field_set.h>
28 // @@protoc_insertion_point(includes)
29 
30 namespace singa {
31 
32 // Internal implementation detail -- do not call these.
33 void protobuf_AddDesc_model_2eproto();
34 void protobuf_AssignDesc_model_2eproto();
35 void protobuf_ShutdownFile_model_2eproto();
36 
37 class ModelProto;
38 class NetProto;
39 class ParamProto;
40 class BlobProtos;
41 class LayerProto;
42 class RGBImage;
43 class SplitProto;
44 class TanhProto;
45 class SoftmaxLossProto;
46 class ConvolutionProto;
47 class ConcateProto;
48 class DataProto;
49 class MnistProto;
50 class DropoutProto;
51 class InnerProductProto;
52 class LRNProto;
53 class PoolingProto;
54 class SliceProto;
55 class ReLUProto;
56 class Record;
57 class Datum;
58 class SingleLabelImageRecord;
59 class UpdaterProto;
60 class BlobProto;
61 
62 enum ModelProto_GradCalcAlg {
63  ModelProto_GradCalcAlg_kBackPropagation = 1,
64  ModelProto_GradCalcAlg_kContrastiveDivergence = 2
65 };
66 bool ModelProto_GradCalcAlg_IsValid(int value);
67 const ModelProto_GradCalcAlg ModelProto_GradCalcAlg_GradCalcAlg_MIN = ModelProto_GradCalcAlg_kBackPropagation;
68 const ModelProto_GradCalcAlg ModelProto_GradCalcAlg_GradCalcAlg_MAX = ModelProto_GradCalcAlg_kContrastiveDivergence;
69 const int ModelProto_GradCalcAlg_GradCalcAlg_ARRAYSIZE = ModelProto_GradCalcAlg_GradCalcAlg_MAX + 1;
70 
71 const ::google::protobuf::EnumDescriptor* ModelProto_GradCalcAlg_descriptor();
72 inline const ::std::string& ModelProto_GradCalcAlg_Name(ModelProto_GradCalcAlg value) {
73  return ::google::protobuf::internal::NameOfEnum(
74  ModelProto_GradCalcAlg_descriptor(), value);
75 }
76 inline bool ModelProto_GradCalcAlg_Parse(
77  const ::std::string& name, ModelProto_GradCalcAlg* value) {
78  return ::google::protobuf::internal::ParseNamedEnum<ModelProto_GradCalcAlg>(
79  ModelProto_GradCalcAlg_descriptor(), name, value);
80 }
81 enum ParamProto_InitMethod {
82  ParamProto_InitMethod_kConstant = 0,
83  ParamProto_InitMethod_kGaussian = 1,
84  ParamProto_InitMethod_kUniform = 2,
85  ParamProto_InitMethod_kPretrained = 3,
86  ParamProto_InitMethod_kGaussainSqrtFanIn = 4,
87  ParamProto_InitMethod_kUniformSqrtFanIn = 5,
88  ParamProto_InitMethod_kUniformSqrtFanInOut = 6
89 };
90 bool ParamProto_InitMethod_IsValid(int value);
91 const ParamProto_InitMethod ParamProto_InitMethod_InitMethod_MIN = ParamProto_InitMethod_kConstant;
92 const ParamProto_InitMethod ParamProto_InitMethod_InitMethod_MAX = ParamProto_InitMethod_kUniformSqrtFanInOut;
93 const int ParamProto_InitMethod_InitMethod_ARRAYSIZE = ParamProto_InitMethod_InitMethod_MAX + 1;
94 
95 const ::google::protobuf::EnumDescriptor* ParamProto_InitMethod_descriptor();
96 inline const ::std::string& ParamProto_InitMethod_Name(ParamProto_InitMethod value) {
97  return ::google::protobuf::internal::NameOfEnum(
98  ParamProto_InitMethod_descriptor(), value);
99 }
100 inline bool ParamProto_InitMethod_Parse(
101  const ::std::string& name, ParamProto_InitMethod* value) {
102  return ::google::protobuf::internal::ParseNamedEnum<ParamProto_InitMethod>(
103  ParamProto_InitMethod_descriptor(), name, value);
104 }
105 enum LRNProto_NormRegion {
106  LRNProto_NormRegion_ACROSS_CHANNELS = 0,
107  LRNProto_NormRegion_WITHIN_CHANNEL = 1
108 };
109 bool LRNProto_NormRegion_IsValid(int value);
110 const LRNProto_NormRegion LRNProto_NormRegion_NormRegion_MIN = LRNProto_NormRegion_ACROSS_CHANNELS;
111 const LRNProto_NormRegion LRNProto_NormRegion_NormRegion_MAX = LRNProto_NormRegion_WITHIN_CHANNEL;
112 const int LRNProto_NormRegion_NormRegion_ARRAYSIZE = LRNProto_NormRegion_NormRegion_MAX + 1;
113 
114 const ::google::protobuf::EnumDescriptor* LRNProto_NormRegion_descriptor();
115 inline const ::std::string& LRNProto_NormRegion_Name(LRNProto_NormRegion value) {
116  return ::google::protobuf::internal::NameOfEnum(
117  LRNProto_NormRegion_descriptor(), value);
118 }
119 inline bool LRNProto_NormRegion_Parse(
120  const ::std::string& name, LRNProto_NormRegion* value) {
121  return ::google::protobuf::internal::ParseNamedEnum<LRNProto_NormRegion>(
122  LRNProto_NormRegion_descriptor(), name, value);
123 }
124 enum PoolingProto_PoolMethod {
125  PoolingProto_PoolMethod_MAX = 0,
126  PoolingProto_PoolMethod_AVE = 1
127 };
128 bool PoolingProto_PoolMethod_IsValid(int value);
129 const PoolingProto_PoolMethod PoolingProto_PoolMethod_PoolMethod_MIN = PoolingProto_PoolMethod_MAX;
130 const PoolingProto_PoolMethod PoolingProto_PoolMethod_PoolMethod_MAX = PoolingProto_PoolMethod_AVE;
131 const int PoolingProto_PoolMethod_PoolMethod_ARRAYSIZE = PoolingProto_PoolMethod_PoolMethod_MAX + 1;
132 
133 const ::google::protobuf::EnumDescriptor* PoolingProto_PoolMethod_descriptor();
134 inline const ::std::string& PoolingProto_PoolMethod_Name(PoolingProto_PoolMethod value) {
135  return ::google::protobuf::internal::NameOfEnum(
136  PoolingProto_PoolMethod_descriptor(), value);
137 }
138 inline bool PoolingProto_PoolMethod_Parse(
139  const ::std::string& name, PoolingProto_PoolMethod* value) {
140  return ::google::protobuf::internal::ParseNamedEnum<PoolingProto_PoolMethod>(
141  PoolingProto_PoolMethod_descriptor(), name, value);
142 }
143 enum Record_Type {
144  Record_Type_kSingleLabelImage = 0
145 };
146 bool Record_Type_IsValid(int value);
147 const Record_Type Record_Type_Type_MIN = Record_Type_kSingleLabelImage;
148 const Record_Type Record_Type_Type_MAX = Record_Type_kSingleLabelImage;
149 const int Record_Type_Type_ARRAYSIZE = Record_Type_Type_MAX + 1;
150 
151 const ::google::protobuf::EnumDescriptor* Record_Type_descriptor();
152 inline const ::std::string& Record_Type_Name(Record_Type value) {
153  return ::google::protobuf::internal::NameOfEnum(
154  Record_Type_descriptor(), value);
155 }
156 inline bool Record_Type_Parse(
157  const ::std::string& name, Record_Type* value) {
158  return ::google::protobuf::internal::ParseNamedEnum<Record_Type>(
159  Record_Type_descriptor(), name, value);
160 }
161 enum UpdaterProto_ChangeProto {
162  UpdaterProto_ChangeProto_kFixed = 0,
163  UpdaterProto_ChangeProto_kInverse_t = 1,
164  UpdaterProto_ChangeProto_kInverse = 2,
165  UpdaterProto_ChangeProto_kExponential = 3,
166  UpdaterProto_ChangeProto_kLinear = 4,
167  UpdaterProto_ChangeProto_kStep = 5,
168  UpdaterProto_ChangeProto_kFixedStep = 6
169 };
170 bool UpdaterProto_ChangeProto_IsValid(int value);
171 const UpdaterProto_ChangeProto UpdaterProto_ChangeProto_ChangeProto_MIN = UpdaterProto_ChangeProto_kFixed;
172 const UpdaterProto_ChangeProto UpdaterProto_ChangeProto_ChangeProto_MAX = UpdaterProto_ChangeProto_kFixedStep;
173 const int UpdaterProto_ChangeProto_ChangeProto_ARRAYSIZE = UpdaterProto_ChangeProto_ChangeProto_MAX + 1;
174 
175 const ::google::protobuf::EnumDescriptor* UpdaterProto_ChangeProto_descriptor();
176 inline const ::std::string& UpdaterProto_ChangeProto_Name(UpdaterProto_ChangeProto value) {
177  return ::google::protobuf::internal::NameOfEnum(
178  UpdaterProto_ChangeProto_descriptor(), value);
179 }
180 inline bool UpdaterProto_ChangeProto_Parse(
181  const ::std::string& name, UpdaterProto_ChangeProto* value) {
182  return ::google::protobuf::internal::ParseNamedEnum<UpdaterProto_ChangeProto>(
183  UpdaterProto_ChangeProto_descriptor(), name, value);
184 }
185 enum MsgType {
186  kGet = 0,
187  kPut = 1,
188  kSync = 2,
189  kUpdate = 3,
190  kSyncRequest = 4,
191  kSyncResponse = 5,
192  kStop = 6,
193  kData = 7,
194  kRGet = 8,
195  kRUpdate = 9,
196  kConnect = 10,
197  kMetric = 11
198 };
199 bool MsgType_IsValid(int value);
200 const MsgType MsgType_MIN = kGet;
201 const MsgType MsgType_MAX = kMetric;
202 const int MsgType_ARRAYSIZE = MsgType_MAX + 1;
203 
204 const ::google::protobuf::EnumDescriptor* MsgType_descriptor();
205 inline const ::std::string& MsgType_Name(MsgType value) {
206  return ::google::protobuf::internal::NameOfEnum(
207  MsgType_descriptor(), value);
208 }
209 inline bool MsgType_Parse(
210  const ::std::string& name, MsgType* value) {
211  return ::google::protobuf::internal::ParseNamedEnum<MsgType>(
212  MsgType_descriptor(), name, value);
213 }
214 enum EntityType {
215  kWorkerParam = 0,
216  kWorkerLayer = 1,
217  kServer = 2,
218  kStub = 3,
219  kRuntime = 4
220 };
221 bool EntityType_IsValid(int value);
222 const EntityType EntityType_MIN = kWorkerParam;
223 const EntityType EntityType_MAX = kRuntime;
224 const int EntityType_ARRAYSIZE = EntityType_MAX + 1;
225 
226 const ::google::protobuf::EnumDescriptor* EntityType_descriptor();
227 inline const ::std::string& EntityType_Name(EntityType value) {
228  return ::google::protobuf::internal::NameOfEnum(
229  EntityType_descriptor(), value);
230 }
231 inline bool EntityType_Parse(
232  const ::std::string& name, EntityType* value) {
233  return ::google::protobuf::internal::ParseNamedEnum<EntityType>(
234  EntityType_descriptor(), name, value);
235 }
236 enum Phase {
237  kTrain = 0,
238  kValidation = 1,
239  kTest = 2
240 };
241 bool Phase_IsValid(int value);
242 const Phase Phase_MIN = kTrain;
243 const Phase Phase_MAX = kTest;
244 const int Phase_ARRAYSIZE = Phase_MAX + 1;
245 
246 const ::google::protobuf::EnumDescriptor* Phase_descriptor();
247 inline const ::std::string& Phase_Name(Phase value) {
248  return ::google::protobuf::internal::NameOfEnum(
249  Phase_descriptor(), value);
250 }
251 inline bool Phase_Parse(
252  const ::std::string& name, Phase* value) {
253  return ::google::protobuf::internal::ParseNamedEnum<Phase>(
254  Phase_descriptor(), name, value);
255 }
256 enum ShareOption {
257  kValueOnly = 0,
258  kWhole = 1
259 };
260 bool ShareOption_IsValid(int value);
261 const ShareOption ShareOption_MIN = kValueOnly;
262 const ShareOption ShareOption_MAX = kWhole;
263 const int ShareOption_ARRAYSIZE = ShareOption_MAX + 1;
264 
265 const ::google::protobuf::EnumDescriptor* ShareOption_descriptor();
266 inline const ::std::string& ShareOption_Name(ShareOption value) {
267  return ::google::protobuf::internal::NameOfEnum(
268  ShareOption_descriptor(), value);
269 }
270 inline bool ShareOption_Parse(
271  const ::std::string& name, ShareOption* value) {
272  return ::google::protobuf::internal::ParseNamedEnum<ShareOption>(
273  ShareOption_descriptor(), name, value);
274 }
275 enum PartitionType {
276  kDataPartition = 0,
277  kLayerPartition = 1,
278  kNone = 2
279 };
280 bool PartitionType_IsValid(int value);
281 const PartitionType PartitionType_MIN = kDataPartition;
282 const PartitionType PartitionType_MAX = kNone;
283 const int PartitionType_ARRAYSIZE = PartitionType_MAX + 1;
284 
285 const ::google::protobuf::EnumDescriptor* PartitionType_descriptor();
286 inline const ::std::string& PartitionType_Name(PartitionType value) {
287  return ::google::protobuf::internal::NameOfEnum(
288  PartitionType_descriptor(), value);
289 }
290 inline bool PartitionType_Parse(
291  const ::std::string& name, PartitionType* value) {
292  return ::google::protobuf::internal::ParseNamedEnum<PartitionType>(
293  PartitionType_descriptor(), name, value);
294 }
295 enum ConnectionType {
296  kOneToOne = 0,
297  kOneToAll = 1
298 };
299 bool ConnectionType_IsValid(int value);
300 const ConnectionType ConnectionType_MIN = kOneToOne;
301 const ConnectionType ConnectionType_MAX = kOneToAll;
302 const int ConnectionType_ARRAYSIZE = ConnectionType_MAX + 1;
303 
304 const ::google::protobuf::EnumDescriptor* ConnectionType_descriptor();
305 inline const ::std::string& ConnectionType_Name(ConnectionType value) {
306  return ::google::protobuf::internal::NameOfEnum(
307  ConnectionType_descriptor(), value);
308 }
309 inline bool ConnectionType_Parse(
310  const ::std::string& name, ConnectionType* value) {
311  return ::google::protobuf::internal::ParseNamedEnum<ConnectionType>(
312  ConnectionType_descriptor(), name, value);
313 }
314 // ===================================================================
315 
316 class ModelProto : public ::google::protobuf::Message {
317  public:
318  ModelProto();
319  virtual ~ModelProto();
320 
321  ModelProto(const ModelProto& from);
322 
323  inline ModelProto& operator=(const ModelProto& from) {
324  CopyFrom(from);
325  return *this;
326  }
327 
328  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
329  return _unknown_fields_;
330  }
331 
332  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
333  return &_unknown_fields_;
334  }
335 
336  static const ::google::protobuf::Descriptor* descriptor();
337  static const ModelProto& default_instance();
338 
339  void Swap(ModelProto* other);
340 
341  // implements Message ----------------------------------------------
342 
343  ModelProto* New() const;
344  void CopyFrom(const ::google::protobuf::Message& from);
345  void MergeFrom(const ::google::protobuf::Message& from);
346  void CopyFrom(const ModelProto& from);
347  void MergeFrom(const ModelProto& from);
348  void Clear();
349  bool IsInitialized() const;
350 
351  int ByteSize() const;
352  bool MergePartialFromCodedStream(
353  ::google::protobuf::io::CodedInputStream* input);
354  void SerializeWithCachedSizes(
355  ::google::protobuf::io::CodedOutputStream* output) const;
356  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
357  int GetCachedSize() const { return _cached_size_; }
358  private:
359  void SharedCtor();
360  void SharedDtor();
361  void SetCachedSize(int size) const;
362  public:
363 
364  ::google::protobuf::Metadata GetMetadata() const;
365 
366  // nested types ----------------------------------------------------
367 
368  typedef ModelProto_GradCalcAlg GradCalcAlg;
369  static const GradCalcAlg kBackPropagation = ModelProto_GradCalcAlg_kBackPropagation;
370  static const GradCalcAlg kContrastiveDivergence = ModelProto_GradCalcAlg_kContrastiveDivergence;
371  static inline bool GradCalcAlg_IsValid(int value) {
372  return ModelProto_GradCalcAlg_IsValid(value);
373  }
374  static const GradCalcAlg GradCalcAlg_MIN =
375  ModelProto_GradCalcAlg_GradCalcAlg_MIN;
376  static const GradCalcAlg GradCalcAlg_MAX =
377  ModelProto_GradCalcAlg_GradCalcAlg_MAX;
378  static const int GradCalcAlg_ARRAYSIZE =
379  ModelProto_GradCalcAlg_GradCalcAlg_ARRAYSIZE;
380  static inline const ::google::protobuf::EnumDescriptor*
381  GradCalcAlg_descriptor() {
382  return ModelProto_GradCalcAlg_descriptor();
383  }
384  static inline const ::std::string& GradCalcAlg_Name(GradCalcAlg value) {
385  return ModelProto_GradCalcAlg_Name(value);
386  }
387  static inline bool GradCalcAlg_Parse(const ::std::string& name,
388  GradCalcAlg* value) {
389  return ModelProto_GradCalcAlg_Parse(name, value);
390  }
391 
392  // accessors -------------------------------------------------------
393 
394  // optional string name = 1;
395  inline bool has_name() const;
396  inline void clear_name();
397  static const int kNameFieldNumber = 1;
398  inline const ::std::string& name() const;
399  inline void set_name(const ::std::string& value);
400  inline void set_name(const char* value);
401  inline void set_name(const char* value, size_t size);
402  inline ::std::string* mutable_name();
403  inline ::std::string* release_name();
404  inline void set_allocated_name(::std::string* name);
405 
406  // optional string train_folder = 2 [default = "train"];
407  inline bool has_train_folder() const;
408  inline void clear_train_folder();
409  static const int kTrainFolderFieldNumber = 2;
410  inline const ::std::string& train_folder() const;
411  inline void set_train_folder(const ::std::string& value);
412  inline void set_train_folder(const char* value);
413  inline void set_train_folder(const char* value, size_t size);
414  inline ::std::string* mutable_train_folder();
415  inline ::std::string* release_train_folder();
416  inline void set_allocated_train_folder(::std::string* train_folder);
417 
418  // optional string test_folder = 3 [default = "test"];
419  inline bool has_test_folder() const;
420  inline void clear_test_folder();
421  static const int kTestFolderFieldNumber = 3;
422  inline const ::std::string& test_folder() const;
423  inline void set_test_folder(const ::std::string& value);
424  inline void set_test_folder(const char* value);
425  inline void set_test_folder(const char* value, size_t size);
426  inline ::std::string* mutable_test_folder();
427  inline ::std::string* release_test_folder();
428  inline void set_allocated_test_folder(::std::string* test_folder);
429 
430  // optional string validation_folder = 4 [default = "validation"];
431  inline bool has_validation_folder() const;
432  inline void clear_validation_folder();
433  static const int kValidationFolderFieldNumber = 4;
434  inline const ::std::string& validation_folder() const;
435  inline void set_validation_folder(const ::std::string& value);
436  inline void set_validation_folder(const char* value);
437  inline void set_validation_folder(const char* value, size_t size);
438  inline ::std::string* mutable_validation_folder();
439  inline ::std::string* release_validation_folder();
440  inline void set_allocated_validation_folder(::std::string* validation_folder);
441 
442  // optional int32 display_after_steps = 6 [default = 0];
443  inline bool has_display_after_steps() const;
444  inline void clear_display_after_steps();
445  static const int kDisplayAfterStepsFieldNumber = 6;
446  inline ::google::protobuf::int32 display_after_steps() const;
447  inline void set_display_after_steps(::google::protobuf::int32 value);
448 
449  // optional int32 display_frequency = 7 [default = 0];
450  inline bool has_display_frequency() const;
451  inline void clear_display_frequency();
452  static const int kDisplayFrequencyFieldNumber = 7;
453  inline ::google::protobuf::int32 display_frequency() const;
454  inline void set_display_frequency(::google::protobuf::int32 value);
455 
456  // optional int32 validation_after_steps = 10 [default = 0];
457  inline bool has_validation_after_steps() const;
458  inline void clear_validation_after_steps();
459  static const int kValidationAfterStepsFieldNumber = 10;
460  inline ::google::protobuf::int32 validation_after_steps() const;
461  inline void set_validation_after_steps(::google::protobuf::int32 value);
462 
463  // optional int32 validation_frequency = 11 [default = 0];
464  inline bool has_validation_frequency() const;
465  inline void clear_validation_frequency();
466  static const int kValidationFrequencyFieldNumber = 11;
467  inline ::google::protobuf::int32 validation_frequency() const;
468  inline void set_validation_frequency(::google::protobuf::int32 value);
469 
470  // optional int32 test_after_steps = 13 [default = 0];
471  inline bool has_test_after_steps() const;
472  inline void clear_test_after_steps();
473  static const int kTestAfterStepsFieldNumber = 13;
474  inline ::google::protobuf::int32 test_after_steps() const;
475  inline void set_test_after_steps(::google::protobuf::int32 value);
476 
477  // optional int32 test_frequency = 14 [default = 0];
478  inline bool has_test_frequency() const;
479  inline void clear_test_frequency();
480  static const int kTestFrequencyFieldNumber = 14;
481  inline ::google::protobuf::int32 test_frequency() const;
482  inline void set_test_frequency(::google::protobuf::int32 value);
483 
484  // optional int32 checkpoint_after_steps = 15 [default = 0];
485  inline bool has_checkpoint_after_steps() const;
486  inline void clear_checkpoint_after_steps();
487  static const int kCheckpointAfterStepsFieldNumber = 15;
488  inline ::google::protobuf::int32 checkpoint_after_steps() const;
489  inline void set_checkpoint_after_steps(::google::protobuf::int32 value);
490 
491  // optional int32 checkpoint_frequency = 16 [default = 0];
492  inline bool has_checkpoint_frequency() const;
493  inline void clear_checkpoint_frequency();
494  static const int kCheckpointFrequencyFieldNumber = 16;
495  inline ::google::protobuf::int32 checkpoint_frequency() const;
496  inline void set_checkpoint_frequency(::google::protobuf::int32 value);
497 
498  // optional bool prefetch = 18 [default = true];
499  inline bool has_prefetch() const;
500  inline void clear_prefetch();
501  static const int kPrefetchFieldNumber = 18;
502  inline bool prefetch() const;
503  inline void set_prefetch(bool value);
504 
505  // optional int32 train_steps = 20;
506  inline bool has_train_steps() const;
507  inline void clear_train_steps();
508  static const int kTrainStepsFieldNumber = 20;
509  inline ::google::protobuf::int32 train_steps() const;
510  inline void set_train_steps(::google::protobuf::int32 value);
511 
512  // optional int32 validation_steps = 21;
513  inline bool has_validation_steps() const;
514  inline void clear_validation_steps();
515  static const int kValidationStepsFieldNumber = 21;
516  inline ::google::protobuf::int32 validation_steps() const;
517  inline void set_validation_steps(::google::protobuf::int32 value);
518 
519  // optional int32 test_steps = 22;
520  inline bool has_test_steps() const;
521  inline void clear_test_steps();
522  static const int kTestStepsFieldNumber = 22;
523  inline ::google::protobuf::int32 test_steps() const;
524  inline void set_test_steps(::google::protobuf::int32 value);
525 
526  // optional int32 step = 29 [default = 0];
527  inline bool has_step() const;
528  inline void clear_step();
529  static const int kStepFieldNumber = 29;
530  inline ::google::protobuf::int32 step() const;
531  inline void set_step(::google::protobuf::int32 value);
532 
533  // optional .singa.UpdaterProto updater = 31;
534  inline bool has_updater() const;
535  inline void clear_updater();
536  static const int kUpdaterFieldNumber = 31;
537  inline const ::singa::UpdaterProto& updater() const;
538  inline ::singa::UpdaterProto* mutable_updater();
539  inline ::singa::UpdaterProto* release_updater();
540  inline void set_allocated_updater(::singa::UpdaterProto* updater);
541 
542  // optional .singa.ModelProto.GradCalcAlg alg = 32 [default = kBackPropagation];
543  inline bool has_alg() const;
544  inline void clear_alg();
545  static const int kAlgFieldNumber = 32;
546  inline ::singa::ModelProto_GradCalcAlg alg() const;
547  inline void set_alg(::singa::ModelProto_GradCalcAlg value);
548 
549  // optional bool hogwild = 33 [default = false];
550  inline bool has_hogwild() const;
551  inline void clear_hogwild();
552  static const int kHogwildFieldNumber = 33;
553  inline bool hogwild() const;
554  inline void set_hogwild(bool value);
555 
556  // optional .singa.NetProto neuralnet = 40;
557  inline bool has_neuralnet() const;
558  inline void clear_neuralnet();
559  static const int kNeuralnetFieldNumber = 40;
560  inline const ::singa::NetProto& neuralnet() const;
561  inline ::singa::NetProto* mutable_neuralnet();
562  inline ::singa::NetProto* release_neuralnet();
563  inline void set_allocated_neuralnet(::singa::NetProto* neuralnet);
564 
565  // optional bool debug = 41 [default = false];
566  inline bool has_debug() const;
567  inline void clear_debug();
568  static const int kDebugFieldNumber = 41;
569  inline bool debug() const;
570  inline void set_debug(bool value);
571 
572  // optional int32 warmup_steps = 50 [default = 0];
573  inline bool has_warmup_steps() const;
574  inline void clear_warmup_steps();
575  static const int kWarmupStepsFieldNumber = 50;
576  inline ::google::protobuf::int32 warmup_steps() const;
577  inline void set_warmup_steps(::google::protobuf::int32 value);
578 
579  // @@protoc_insertion_point(class_scope:singa.ModelProto)
580  private:
581  inline void set_has_name();
582  inline void clear_has_name();
583  inline void set_has_train_folder();
584  inline void clear_has_train_folder();
585  inline void set_has_test_folder();
586  inline void clear_has_test_folder();
587  inline void set_has_validation_folder();
588  inline void clear_has_validation_folder();
589  inline void set_has_display_after_steps();
590  inline void clear_has_display_after_steps();
591  inline void set_has_display_frequency();
592  inline void clear_has_display_frequency();
593  inline void set_has_validation_after_steps();
594  inline void clear_has_validation_after_steps();
595  inline void set_has_validation_frequency();
596  inline void clear_has_validation_frequency();
597  inline void set_has_test_after_steps();
598  inline void clear_has_test_after_steps();
599  inline void set_has_test_frequency();
600  inline void clear_has_test_frequency();
601  inline void set_has_checkpoint_after_steps();
602  inline void clear_has_checkpoint_after_steps();
603  inline void set_has_checkpoint_frequency();
604  inline void clear_has_checkpoint_frequency();
605  inline void set_has_prefetch();
606  inline void clear_has_prefetch();
607  inline void set_has_train_steps();
608  inline void clear_has_train_steps();
609  inline void set_has_validation_steps();
610  inline void clear_has_validation_steps();
611  inline void set_has_test_steps();
612  inline void clear_has_test_steps();
613  inline void set_has_step();
614  inline void clear_has_step();
615  inline void set_has_updater();
616  inline void clear_has_updater();
617  inline void set_has_alg();
618  inline void clear_has_alg();
619  inline void set_has_hogwild();
620  inline void clear_has_hogwild();
621  inline void set_has_neuralnet();
622  inline void clear_has_neuralnet();
623  inline void set_has_debug();
624  inline void clear_has_debug();
625  inline void set_has_warmup_steps();
626  inline void clear_has_warmup_steps();
627 
628  ::google::protobuf::UnknownFieldSet _unknown_fields_;
629 
630  ::std::string* name_;
631  ::std::string* train_folder_;
632  static ::std::string* _default_train_folder_;
633  ::std::string* test_folder_;
634  static ::std::string* _default_test_folder_;
635  ::std::string* validation_folder_;
636  static ::std::string* _default_validation_folder_;
637  ::google::protobuf::int32 display_after_steps_;
638  ::google::protobuf::int32 display_frequency_;
639  ::google::protobuf::int32 validation_after_steps_;
640  ::google::protobuf::int32 validation_frequency_;
641  ::google::protobuf::int32 test_after_steps_;
642  ::google::protobuf::int32 test_frequency_;
643  ::google::protobuf::int32 checkpoint_after_steps_;
644  ::google::protobuf::int32 checkpoint_frequency_;
645  ::google::protobuf::int32 train_steps_;
646  ::google::protobuf::int32 validation_steps_;
647  ::google::protobuf::int32 test_steps_;
648  ::google::protobuf::int32 step_;
649  ::singa::UpdaterProto* updater_;
650  bool prefetch_;
651  bool hogwild_;
652  bool debug_;
653  int alg_;
654  ::singa::NetProto* neuralnet_;
655  ::google::protobuf::int32 warmup_steps_;
656 
657  mutable int _cached_size_;
658  ::google::protobuf::uint32 _has_bits_[(23 + 31) / 32];
659 
660  friend void protobuf_AddDesc_model_2eproto();
661  friend void protobuf_AssignDesc_model_2eproto();
662  friend void protobuf_ShutdownFile_model_2eproto();
663 
664  void InitAsDefaultInstance();
665  static ModelProto* default_instance_;
666 };
667 // -------------------------------------------------------------------
668 
669 class NetProto : public ::google::protobuf::Message {
670  public:
671  NetProto();
672  virtual ~NetProto();
673 
674  NetProto(const NetProto& from);
675 
676  inline NetProto& operator=(const NetProto& from) {
677  CopyFrom(from);
678  return *this;
679  }
680 
681  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
682  return _unknown_fields_;
683  }
684 
685  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
686  return &_unknown_fields_;
687  }
688 
689  static const ::google::protobuf::Descriptor* descriptor();
690  static const NetProto& default_instance();
691 
692  void Swap(NetProto* other);
693 
694  // implements Message ----------------------------------------------
695 
696  NetProto* New() const;
697  void CopyFrom(const ::google::protobuf::Message& from);
698  void MergeFrom(const ::google::protobuf::Message& from);
699  void CopyFrom(const NetProto& from);
700  void MergeFrom(const NetProto& from);
701  void Clear();
702  bool IsInitialized() const;
703 
704  int ByteSize() const;
705  bool MergePartialFromCodedStream(
706  ::google::protobuf::io::CodedInputStream* input);
707  void SerializeWithCachedSizes(
708  ::google::protobuf::io::CodedOutputStream* output) const;
709  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
710  int GetCachedSize() const { return _cached_size_; }
711  private:
712  void SharedCtor();
713  void SharedDtor();
714  void SetCachedSize(int size) const;
715  public:
716 
717  ::google::protobuf::Metadata GetMetadata() const;
718 
719  // nested types ----------------------------------------------------
720 
721  // accessors -------------------------------------------------------
722 
723  // repeated .singa.LayerProto layer = 1;
724  inline int layer_size() const;
725  inline void clear_layer();
726  static const int kLayerFieldNumber = 1;
727  inline const ::singa::LayerProto& layer(int index) const;
728  inline ::singa::LayerProto* mutable_layer(int index);
729  inline ::singa::LayerProto* add_layer();
730  inline const ::google::protobuf::RepeatedPtrField< ::singa::LayerProto >&
731  layer() const;
732  inline ::google::protobuf::RepeatedPtrField< ::singa::LayerProto >*
733  mutable_layer();
734 
735  // optional .singa.PartitionType partition_type = 3 [default = kNone];
736  inline bool has_partition_type() const;
737  inline void clear_partition_type();
738  static const int kPartitionTypeFieldNumber = 3;
739  inline ::singa::PartitionType partition_type() const;
740  inline void set_partition_type(::singa::PartitionType value);
741 
742  // @@protoc_insertion_point(class_scope:singa.NetProto)
743  private:
744  inline void set_has_partition_type();
745  inline void clear_has_partition_type();
746 
747  ::google::protobuf::UnknownFieldSet _unknown_fields_;
748 
749  ::google::protobuf::RepeatedPtrField< ::singa::LayerProto > layer_;
750  int partition_type_;
751 
752  mutable int _cached_size_;
753  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
754 
755  friend void protobuf_AddDesc_model_2eproto();
756  friend void protobuf_AssignDesc_model_2eproto();
757  friend void protobuf_ShutdownFile_model_2eproto();
758 
759  void InitAsDefaultInstance();
760  static NetProto* default_instance_;
761 };
762 // -------------------------------------------------------------------
763 
764 class ParamProto : public ::google::protobuf::Message {
765  public:
766  ParamProto();
767  virtual ~ParamProto();
768 
769  ParamProto(const ParamProto& from);
770 
771  inline ParamProto& operator=(const ParamProto& from) {
772  CopyFrom(from);
773  return *this;
774  }
775 
776  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
777  return _unknown_fields_;
778  }
779 
780  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
781  return &_unknown_fields_;
782  }
783 
784  static const ::google::protobuf::Descriptor* descriptor();
785  static const ParamProto& default_instance();
786 
787  void Swap(ParamProto* other);
788 
789  // implements Message ----------------------------------------------
790 
791  ParamProto* New() const;
792  void CopyFrom(const ::google::protobuf::Message& from);
793  void MergeFrom(const ::google::protobuf::Message& from);
794  void CopyFrom(const ParamProto& from);
795  void MergeFrom(const ParamProto& from);
796  void Clear();
797  bool IsInitialized() const;
798 
799  int ByteSize() const;
800  bool MergePartialFromCodedStream(
801  ::google::protobuf::io::CodedInputStream* input);
802  void SerializeWithCachedSizes(
803  ::google::protobuf::io::CodedOutputStream* output) const;
804  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
805  int GetCachedSize() const { return _cached_size_; }
806  private:
807  void SharedCtor();
808  void SharedDtor();
809  void SetCachedSize(int size) const;
810  public:
811 
812  ::google::protobuf::Metadata GetMetadata() const;
813 
814  // nested types ----------------------------------------------------
815 
816  typedef ParamProto_InitMethod InitMethod;
817  static const InitMethod kConstant = ParamProto_InitMethod_kConstant;
818  static const InitMethod kGaussian = ParamProto_InitMethod_kGaussian;
819  static const InitMethod kUniform = ParamProto_InitMethod_kUniform;
820  static const InitMethod kPretrained = ParamProto_InitMethod_kPretrained;
821  static const InitMethod kGaussainSqrtFanIn = ParamProto_InitMethod_kGaussainSqrtFanIn;
822  static const InitMethod kUniformSqrtFanIn = ParamProto_InitMethod_kUniformSqrtFanIn;
823  static const InitMethod kUniformSqrtFanInOut = ParamProto_InitMethod_kUniformSqrtFanInOut;
824  static inline bool InitMethod_IsValid(int value) {
825  return ParamProto_InitMethod_IsValid(value);
826  }
827  static const InitMethod InitMethod_MIN =
828  ParamProto_InitMethod_InitMethod_MIN;
829  static const InitMethod InitMethod_MAX =
830  ParamProto_InitMethod_InitMethod_MAX;
831  static const int InitMethod_ARRAYSIZE =
832  ParamProto_InitMethod_InitMethod_ARRAYSIZE;
833  static inline const ::google::protobuf::EnumDescriptor*
834  InitMethod_descriptor() {
835  return ParamProto_InitMethod_descriptor();
836  }
837  static inline const ::std::string& InitMethod_Name(InitMethod value) {
838  return ParamProto_InitMethod_Name(value);
839  }
840  static inline bool InitMethod_Parse(const ::std::string& name,
841  InitMethod* value) {
842  return ParamProto_InitMethod_Parse(name, value);
843  }
844 
845  // accessors -------------------------------------------------------
846 
847  // optional string name = 1;
848  inline bool has_name() const;
849  inline void clear_name();
850  static const int kNameFieldNumber = 1;
851  inline const ::std::string& name() const;
852  inline void set_name(const ::std::string& value);
853  inline void set_name(const char* value);
854  inline void set_name(const char* value, size_t size);
855  inline ::std::string* mutable_name();
856  inline ::std::string* release_name();
857  inline void set_allocated_name(::std::string* name);
858 
859  // optional int32 id = 2;
860  inline bool has_id() const;
861  inline void clear_id();
862  static const int kIdFieldNumber = 2;
863  inline ::google::protobuf::int32 id() const;
864  inline void set_id(::google::protobuf::int32 value);
865 
866  // repeated int32 shape = 3;
867  inline int shape_size() const;
868  inline void clear_shape();
869  static const int kShapeFieldNumber = 3;
870  inline ::google::protobuf::int32 shape(int index) const;
871  inline void set_shape(int index, ::google::protobuf::int32 value);
872  inline void add_shape(::google::protobuf::int32 value);
873  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
874  shape() const;
875  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
876  mutable_shape();
877 
878  // optional int32 split_threshold = 4 [default = 5000000];
879  inline bool has_split_threshold() const;
880  inline void clear_split_threshold();
881  static const int kSplitThresholdFieldNumber = 4;
882  inline ::google::protobuf::int32 split_threshold() const;
883  inline void set_split_threshold(::google::protobuf::int32 value);
884 
885  // optional int32 partition_dim = 5 [default = -1];
886  inline bool has_partition_dim() const;
887  inline void clear_partition_dim();
888  static const int kPartitionDimFieldNumber = 5;
889  inline ::google::protobuf::int32 partition_dim() const;
890  inline void set_partition_dim(::google::protobuf::int32 value);
891 
892  // optional int32 owner = 6;
893  inline bool has_owner() const;
894  inline void clear_owner();
895  static const int kOwnerFieldNumber = 6;
896  inline ::google::protobuf::int32 owner() const;
897  inline void set_owner(::google::protobuf::int32 value);
898 
899  // optional .singa.ParamProto.InitMethod init_method = 7 [default = kConstant];
900  inline bool has_init_method() const;
901  inline void clear_init_method();
902  static const int kInitMethodFieldNumber = 7;
903  inline ::singa::ParamProto_InitMethod init_method() const;
904  inline void set_init_method(::singa::ParamProto_InitMethod value);
905 
906  // optional float value = 8 [default = 1];
907  inline bool has_value() const;
908  inline void clear_value();
909  static const int kValueFieldNumber = 8;
910  inline float value() const;
911  inline void set_value(float value);
912 
913  // optional float low = 9 [default = -1];
914  inline bool has_low() const;
915  inline void clear_low();
916  static const int kLowFieldNumber = 9;
917  inline float low() const;
918  inline void set_low(float value);
919 
920  // optional float high = 10 [default = 1];
921  inline bool has_high() const;
922  inline void clear_high();
923  static const int kHighFieldNumber = 10;
924  inline float high() const;
925  inline void set_high(float value);
926 
927  // optional float mean = 11 [default = 0];
928  inline bool has_mean() const;
929  inline void clear_mean();
930  static const int kMeanFieldNumber = 11;
931  inline float mean() const;
932  inline void set_mean(float value);
933 
934  // optional float std = 12 [default = 1];
935  inline bool has_std() const;
936  inline void clear_std();
937  static const int kStdFieldNumber = 12;
938  inline float std() const;
939  inline void set_std(float value);
940 
941  // optional float learning_rate_multiplier = 13 [default = 1];
942  inline bool has_learning_rate_multiplier() const;
943  inline void clear_learning_rate_multiplier();
944  static const int kLearningRateMultiplierFieldNumber = 13;
945  inline float learning_rate_multiplier() const;
946  inline void set_learning_rate_multiplier(float value);
947 
948  // optional float weight_decay_multiplier = 14 [default = 1];
949  inline bool has_weight_decay_multiplier() const;
950  inline void clear_weight_decay_multiplier();
951  static const int kWeightDecayMultiplierFieldNumber = 14;
952  inline float weight_decay_multiplier() const;
953  inline void set_weight_decay_multiplier(float value);
954 
955  // @@protoc_insertion_point(class_scope:singa.ParamProto)
956  private:
957  inline void set_has_name();
958  inline void clear_has_name();
959  inline void set_has_id();
960  inline void clear_has_id();
961  inline void set_has_split_threshold();
962  inline void clear_has_split_threshold();
963  inline void set_has_partition_dim();
964  inline void clear_has_partition_dim();
965  inline void set_has_owner();
966  inline void clear_has_owner();
967  inline void set_has_init_method();
968  inline void clear_has_init_method();
969  inline void set_has_value();
970  inline void clear_has_value();
971  inline void set_has_low();
972  inline void clear_has_low();
973  inline void set_has_high();
974  inline void clear_has_high();
975  inline void set_has_mean();
976  inline void clear_has_mean();
977  inline void set_has_std();
978  inline void clear_has_std();
979  inline void set_has_learning_rate_multiplier();
980  inline void clear_has_learning_rate_multiplier();
981  inline void set_has_weight_decay_multiplier();
982  inline void clear_has_weight_decay_multiplier();
983 
984  ::google::protobuf::UnknownFieldSet _unknown_fields_;
985 
986  ::std::string* name_;
987  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > shape_;
988  ::google::protobuf::int32 id_;
989  ::google::protobuf::int32 split_threshold_;
990  ::google::protobuf::int32 partition_dim_;
991  ::google::protobuf::int32 owner_;
992  int init_method_;
993  float value_;
994  float low_;
995  float high_;
996  float mean_;
997  float std_;
998  float learning_rate_multiplier_;
999  float weight_decay_multiplier_;
1000 
1001  mutable int _cached_size_;
1002  ::google::protobuf::uint32 _has_bits_[(14 + 31) / 32];
1003 
1004  friend void protobuf_AddDesc_model_2eproto();
1005  friend void protobuf_AssignDesc_model_2eproto();
1006  friend void protobuf_ShutdownFile_model_2eproto();
1007 
1008  void InitAsDefaultInstance();
1009  static ParamProto* default_instance_;
1010 };
1011 // -------------------------------------------------------------------
1012 
1013 class BlobProtos : public ::google::protobuf::Message {
1014  public:
1015  BlobProtos();
1016  virtual ~BlobProtos();
1017 
1018  BlobProtos(const BlobProtos& from);
1019 
1020  inline BlobProtos& operator=(const BlobProtos& from) {
1021  CopyFrom(from);
1022  return *this;
1023  }
1024 
1025  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
1026  return _unknown_fields_;
1027  }
1028 
1029  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
1030  return &_unknown_fields_;
1031  }
1032 
1033  static const ::google::protobuf::Descriptor* descriptor();
1034  static const BlobProtos& default_instance();
1035 
1036  void Swap(BlobProtos* other);
1037 
1038  // implements Message ----------------------------------------------
1039 
1040  BlobProtos* New() const;
1041  void CopyFrom(const ::google::protobuf::Message& from);
1042  void MergeFrom(const ::google::protobuf::Message& from);
1043  void CopyFrom(const BlobProtos& from);
1044  void MergeFrom(const BlobProtos& from);
1045  void Clear();
1046  bool IsInitialized() const;
1047 
1048  int ByteSize() const;
1049  bool MergePartialFromCodedStream(
1050  ::google::protobuf::io::CodedInputStream* input);
1051  void SerializeWithCachedSizes(
1052  ::google::protobuf::io::CodedOutputStream* output) const;
1053  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
1054  int GetCachedSize() const { return _cached_size_; }
1055  private:
1056  void SharedCtor();
1057  void SharedDtor();
1058  void SetCachedSize(int size) const;
1059  public:
1060 
1061  ::google::protobuf::Metadata GetMetadata() const;
1062 
1063  // nested types ----------------------------------------------------
1064 
1065  // accessors -------------------------------------------------------
1066 
1067  // repeated .singa.BlobProto blobs = 1;
1068  inline int blobs_size() const;
1069  inline void clear_blobs();
1070  static const int kBlobsFieldNumber = 1;
1071  inline const ::singa::BlobProto& blobs(int index) const;
1072  inline ::singa::BlobProto* mutable_blobs(int index);
1073  inline ::singa::BlobProto* add_blobs();
1074  inline const ::google::protobuf::RepeatedPtrField< ::singa::BlobProto >&
1075  blobs() const;
1076  inline ::google::protobuf::RepeatedPtrField< ::singa::BlobProto >*
1077  mutable_blobs();
1078 
1079  // repeated int32 ids = 2;
1080  inline int ids_size() const;
1081  inline void clear_ids();
1082  static const int kIdsFieldNumber = 2;
1083  inline ::google::protobuf::int32 ids(int index) const;
1084  inline void set_ids(int index, ::google::protobuf::int32 value);
1085  inline void add_ids(::google::protobuf::int32 value);
1086  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
1087  ids() const;
1088  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
1089  mutable_ids();
1090 
1091  // repeated string names = 3;
1092  inline int names_size() const;
1093  inline void clear_names();
1094  static const int kNamesFieldNumber = 3;
1095  inline const ::std::string& names(int index) const;
1096  inline ::std::string* mutable_names(int index);
1097  inline void set_names(int index, const ::std::string& value);
1098  inline void set_names(int index, const char* value);
1099  inline void set_names(int index, const char* value, size_t size);
1100  inline ::std::string* add_names();
1101  inline void add_names(const ::std::string& value);
1102  inline void add_names(const char* value);
1103  inline void add_names(const char* value, size_t size);
1104  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& names() const;
1105  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_names();
1106 
1107  // @@protoc_insertion_point(class_scope:singa.BlobProtos)
1108  private:
1109 
1110  ::google::protobuf::UnknownFieldSet _unknown_fields_;
1111 
1112  ::google::protobuf::RepeatedPtrField< ::singa::BlobProto > blobs_;
1113  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > ids_;
1114  ::google::protobuf::RepeatedPtrField< ::std::string> names_;
1115 
1116  mutable int _cached_size_;
1117  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
1118 
1119  friend void protobuf_AddDesc_model_2eproto();
1120  friend void protobuf_AssignDesc_model_2eproto();
1121  friend void protobuf_ShutdownFile_model_2eproto();
1122 
1123  void InitAsDefaultInstance();
1124  static BlobProtos* default_instance_;
1125 };
1126 // -------------------------------------------------------------------
1127 
1128 class LayerProto : public ::google::protobuf::Message {
1129  public:
1130  LayerProto();
1131  virtual ~LayerProto();
1132 
1133  LayerProto(const LayerProto& from);
1134 
1135  inline LayerProto& operator=(const LayerProto& from) {
1136  CopyFrom(from);
1137  return *this;
1138  }
1139 
1140  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
1141  return _unknown_fields_;
1142  }
1143 
1144  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
1145  return &_unknown_fields_;
1146  }
1147 
1148  static const ::google::protobuf::Descriptor* descriptor();
1149  static const LayerProto& default_instance();
1150 
1151  void Swap(LayerProto* other);
1152 
1153  // implements Message ----------------------------------------------
1154 
1155  LayerProto* New() const;
1156  void CopyFrom(const ::google::protobuf::Message& from);
1157  void MergeFrom(const ::google::protobuf::Message& from);
1158  void CopyFrom(const LayerProto& from);
1159  void MergeFrom(const LayerProto& from);
1160  void Clear();
1161  bool IsInitialized() const;
1162 
1163  int ByteSize() const;
1164  bool MergePartialFromCodedStream(
1165  ::google::protobuf::io::CodedInputStream* input);
1166  void SerializeWithCachedSizes(
1167  ::google::protobuf::io::CodedOutputStream* output) const;
1168  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
1169  int GetCachedSize() const { return _cached_size_; }
1170  private:
1171  void SharedCtor();
1172  void SharedDtor();
1173  void SetCachedSize(int size) const;
1174  public:
1175 
1176  ::google::protobuf::Metadata GetMetadata() const;
1177 
1178  // nested types ----------------------------------------------------
1179 
1180  // accessors -------------------------------------------------------
1181 
1182  // optional string name = 1;
1183  inline bool has_name() const;
1184  inline void clear_name();
1185  static const int kNameFieldNumber = 1;
1186  inline const ::std::string& name() const;
1187  inline void set_name(const ::std::string& value);
1188  inline void set_name(const char* value);
1189  inline void set_name(const char* value, size_t size);
1190  inline ::std::string* mutable_name();
1191  inline ::std::string* release_name();
1192  inline void set_allocated_name(::std::string* name);
1193 
1194  // optional string type = 2;
1195  inline bool has_type() const;
1196  inline void clear_type();
1197  static const int kTypeFieldNumber = 2;
1198  inline const ::std::string& type() const;
1199  inline void set_type(const ::std::string& value);
1200  inline void set_type(const char* value);
1201  inline void set_type(const char* value, size_t size);
1202  inline ::std::string* mutable_type();
1203  inline ::std::string* release_type();
1204  inline void set_allocated_type(::std::string* type);
1205 
1206  // repeated string srclayers = 3;
1207  inline int srclayers_size() const;
1208  inline void clear_srclayers();
1209  static const int kSrclayersFieldNumber = 3;
1210  inline const ::std::string& srclayers(int index) const;
1211  inline ::std::string* mutable_srclayers(int index);
1212  inline void set_srclayers(int index, const ::std::string& value);
1213  inline void set_srclayers(int index, const char* value);
1214  inline void set_srclayers(int index, const char* value, size_t size);
1215  inline ::std::string* add_srclayers();
1216  inline void add_srclayers(const ::std::string& value);
1217  inline void add_srclayers(const char* value);
1218  inline void add_srclayers(const char* value, size_t size);
1219  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& srclayers() const;
1220  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_srclayers();
1221 
1222  // optional int32 locationid = 4 [default = 0];
1223  inline bool has_locationid() const;
1224  inline void clear_locationid();
1225  static const int kLocationidFieldNumber = 4;
1226  inline ::google::protobuf::int32 locationid() const;
1227  inline void set_locationid(::google::protobuf::int32 value);
1228 
1229  // optional int32 partitionid = 5 [default = 0];
1230  inline bool has_partitionid() const;
1231  inline void clear_partitionid();
1232  static const int kPartitionidFieldNumber = 5;
1233  inline ::google::protobuf::int32 partitionid() const;
1234  inline void set_partitionid(::google::protobuf::int32 value);
1235 
1236  // optional .singa.PartitionType partition_type = 6;
1237  inline bool has_partition_type() const;
1238  inline void clear_partition_type();
1239  static const int kPartitionTypeFieldNumber = 6;
1240  inline ::singa::PartitionType partition_type() const;
1241  inline void set_partition_type(::singa::PartitionType value);
1242 
1243  // optional string datablob = 7;
1244  inline bool has_datablob() const;
1245  inline void clear_datablob();
1246  static const int kDatablobFieldNumber = 7;
1247  inline const ::std::string& datablob() const;
1248  inline void set_datablob(const ::std::string& value);
1249  inline void set_datablob(const char* value);
1250  inline void set_datablob(const char* value, size_t size);
1251  inline ::std::string* mutable_datablob();
1252  inline ::std::string* release_datablob();
1253  inline void set_allocated_datablob(::std::string* datablob);
1254 
1255  // repeated string share_ary = 11;
1256  inline int share_ary_size() const;
1257  inline void clear_share_ary();
1258  static const int kShareAryFieldNumber = 11;
1259  inline const ::std::string& share_ary(int index) const;
1260  inline ::std::string* mutable_share_ary(int index);
1261  inline void set_share_ary(int index, const ::std::string& value);
1262  inline void set_share_ary(int index, const char* value);
1263  inline void set_share_ary(int index, const char* value, size_t size);
1264  inline ::std::string* add_share_ary();
1265  inline void add_share_ary(const ::std::string& value);
1266  inline void add_share_ary(const char* value);
1267  inline void add_share_ary(const char* value, size_t size);
1268  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& share_ary() const;
1269  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_share_ary();
1270 
1271  // repeated .singa.ParamProto param = 12;
1272  inline int param_size() const;
1273  inline void clear_param();
1274  static const int kParamFieldNumber = 12;
1275  inline const ::singa::ParamProto& param(int index) const;
1276  inline ::singa::ParamProto* mutable_param(int index);
1277  inline ::singa::ParamProto* add_param();
1278  inline const ::google::protobuf::RepeatedPtrField< ::singa::ParamProto >&
1279  param() const;
1280  inline ::google::protobuf::RepeatedPtrField< ::singa::ParamProto >*
1281  mutable_param();
1282 
1283  // repeated string share_param = 13;
1284  inline int share_param_size() const;
1285  inline void clear_share_param();
1286  static const int kShareParamFieldNumber = 13;
1287  inline const ::std::string& share_param(int index) const;
1288  inline ::std::string* mutable_share_param(int index);
1289  inline void set_share_param(int index, const ::std::string& value);
1290  inline void set_share_param(int index, const char* value);
1291  inline void set_share_param(int index, const char* value, size_t size);
1292  inline ::std::string* add_share_param();
1293  inline void add_share_param(const ::std::string& value);
1294  inline void add_share_param(const char* value);
1295  inline void add_share_param(const char* value, size_t size);
1296  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& share_param() const;
1297  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_share_param();
1298 
1299  // repeated .singa.Phase exclude = 20;
1300  inline int exclude_size() const;
1301  inline void clear_exclude();
1302  static const int kExcludeFieldNumber = 20;
1303  inline ::singa::Phase exclude(int index) const;
1304  inline void set_exclude(int index, ::singa::Phase value);
1305  inline void add_exclude(::singa::Phase value);
1306  inline const ::google::protobuf::RepeatedField<int>& exclude() const;
1307  inline ::google::protobuf::RepeatedField<int>* mutable_exclude();
1308 
1309  // optional .singa.ConvolutionProto convolution_param = 21;
1310  inline bool has_convolution_param() const;
1311  inline void clear_convolution_param();
1312  static const int kConvolutionParamFieldNumber = 21;
1313  inline const ::singa::ConvolutionProto& convolution_param() const;
1314  inline ::singa::ConvolutionProto* mutable_convolution_param();
1315  inline ::singa::ConvolutionProto* release_convolution_param();
1316  inline void set_allocated_convolution_param(::singa::ConvolutionProto* convolution_param);
1317 
1318  // optional .singa.ConcateProto concate_param = 31;
1319  inline bool has_concate_param() const;
1320  inline void clear_concate_param();
1321  static const int kConcateParamFieldNumber = 31;
1322  inline const ::singa::ConcateProto& concate_param() const;
1323  inline ::singa::ConcateProto* mutable_concate_param();
1324  inline ::singa::ConcateProto* release_concate_param();
1325  inline void set_allocated_concate_param(::singa::ConcateProto* concate_param);
1326 
1327  // optional .singa.DataProto data_param = 22;
1328  inline bool has_data_param() const;
1329  inline void clear_data_param();
1330  static const int kDataParamFieldNumber = 22;
1331  inline const ::singa::DataProto& data_param() const;
1332  inline ::singa::DataProto* mutable_data_param();
1333  inline ::singa::DataProto* release_data_param();
1334  inline void set_allocated_data_param(::singa::DataProto* data_param);
1335 
1336  // optional .singa.DropoutProto dropout_param = 23;
1337  inline bool has_dropout_param() const;
1338  inline void clear_dropout_param();
1339  static const int kDropoutParamFieldNumber = 23;
1340  inline const ::singa::DropoutProto& dropout_param() const;
1341  inline ::singa::DropoutProto* mutable_dropout_param();
1342  inline ::singa::DropoutProto* release_dropout_param();
1343  inline void set_allocated_dropout_param(::singa::DropoutProto* dropout_param);
1344 
1345  // optional .singa.InnerProductProto inner_product_param = 24;
1346  inline bool has_inner_product_param() const;
1347  inline void clear_inner_product_param();
1348  static const int kInnerProductParamFieldNumber = 24;
1349  inline const ::singa::InnerProductProto& inner_product_param() const;
1350  inline ::singa::InnerProductProto* mutable_inner_product_param();
1351  inline ::singa::InnerProductProto* release_inner_product_param();
1352  inline void set_allocated_inner_product_param(::singa::InnerProductProto* inner_product_param);
1353 
1354  // optional .singa.LRNProto lrn_param = 25;
1355  inline bool has_lrn_param() const;
1356  inline void clear_lrn_param();
1357  static const int kLrnParamFieldNumber = 25;
1358  inline const ::singa::LRNProto& lrn_param() const;
1359  inline ::singa::LRNProto* mutable_lrn_param();
1360  inline ::singa::LRNProto* release_lrn_param();
1361  inline void set_allocated_lrn_param(::singa::LRNProto* lrn_param);
1362 
1363  // optional .singa.MnistProto mnist_param = 26;
1364  inline bool has_mnist_param() const;
1365  inline void clear_mnist_param();
1366  static const int kMnistParamFieldNumber = 26;
1367  inline const ::singa::MnistProto& mnist_param() const;
1368  inline ::singa::MnistProto* mutable_mnist_param();
1369  inline ::singa::MnistProto* release_mnist_param();
1370  inline void set_allocated_mnist_param(::singa::MnistProto* mnist_param);
1371 
1372  // optional .singa.PoolingProto pooling_param = 27;
1373  inline bool has_pooling_param() const;
1374  inline void clear_pooling_param();
1375  static const int kPoolingParamFieldNumber = 27;
1376  inline const ::singa::PoolingProto& pooling_param() const;
1377  inline ::singa::PoolingProto* mutable_pooling_param();
1378  inline ::singa::PoolingProto* release_pooling_param();
1379  inline void set_allocated_pooling_param(::singa::PoolingProto* pooling_param);
1380 
1381  // repeated .singa.LayerProto sublayers = 35;
1382  inline int sublayers_size() const;
1383  inline void clear_sublayers();
1384  static const int kSublayersFieldNumber = 35;
1385  inline const ::singa::LayerProto& sublayers(int index) const;
1386  inline ::singa::LayerProto* mutable_sublayers(int index);
1387  inline ::singa::LayerProto* add_sublayers();
1388  inline const ::google::protobuf::RepeatedPtrField< ::singa::LayerProto >&
1389  sublayers() const;
1390  inline ::google::protobuf::RepeatedPtrField< ::singa::LayerProto >*
1391  mutable_sublayers();
1392 
1393  // optional .singa.SliceProto slice_param = 32;
1394  inline bool has_slice_param() const;
1395  inline void clear_slice_param();
1396  static const int kSliceParamFieldNumber = 32;
1397  inline const ::singa::SliceProto& slice_param() const;
1398  inline ::singa::SliceProto* mutable_slice_param();
1399  inline ::singa::SliceProto* release_slice_param();
1400  inline void set_allocated_slice_param(::singa::SliceProto* slice_param);
1401 
1402  // optional .singa.SplitProto split_param = 33;
1403  inline bool has_split_param() const;
1404  inline void clear_split_param();
1405  static const int kSplitParamFieldNumber = 33;
1406  inline const ::singa::SplitProto& split_param() const;
1407  inline ::singa::SplitProto* mutable_split_param();
1408  inline ::singa::SplitProto* release_split_param();
1409  inline void set_allocated_split_param(::singa::SplitProto* split_param);
1410 
1411  // optional .singa.ReLUProto relu_param = 28;
1412  inline bool has_relu_param() const;
1413  inline void clear_relu_param();
1414  static const int kReluParamFieldNumber = 28;
1415  inline const ::singa::ReLUProto& relu_param() const;
1416  inline ::singa::ReLUProto* mutable_relu_param();
1417  inline ::singa::ReLUProto* release_relu_param();
1418  inline void set_allocated_relu_param(::singa::ReLUProto* relu_param);
1419 
1420  // optional .singa.RGBImage rgbimage_param = 34;
1421  inline bool has_rgbimage_param() const;
1422  inline void clear_rgbimage_param();
1423  static const int kRgbimageParamFieldNumber = 34;
1424  inline const ::singa::RGBImage& rgbimage_param() const;
1425  inline ::singa::RGBImage* mutable_rgbimage_param();
1426  inline ::singa::RGBImage* release_rgbimage_param();
1427  inline void set_allocated_rgbimage_param(::singa::RGBImage* rgbimage_param);
1428 
1429  // optional .singa.SoftmaxLossProto softmaxloss_param = 29;
1430  inline bool has_softmaxloss_param() const;
1431  inline void clear_softmaxloss_param();
1432  static const int kSoftmaxlossParamFieldNumber = 29;
1433  inline const ::singa::SoftmaxLossProto& softmaxloss_param() const;
1434  inline ::singa::SoftmaxLossProto* mutable_softmaxloss_param();
1435  inline ::singa::SoftmaxLossProto* release_softmaxloss_param();
1436  inline void set_allocated_softmaxloss_param(::singa::SoftmaxLossProto* softmaxloss_param);
1437 
1438  // optional .singa.TanhProto tanh_param = 30;
1439  inline bool has_tanh_param() const;
1440  inline void clear_tanh_param();
1441  static const int kTanhParamFieldNumber = 30;
1442  inline const ::singa::TanhProto& tanh_param() const;
1443  inline ::singa::TanhProto* mutable_tanh_param();
1444  inline ::singa::TanhProto* release_tanh_param();
1445  inline void set_allocated_tanh_param(::singa::TanhProto* tanh_param);
1446 
1447  // @@protoc_insertion_point(class_scope:singa.LayerProto)
1448  private:
1449  inline void set_has_name();
1450  inline void clear_has_name();
1451  inline void set_has_type();
1452  inline void clear_has_type();
1453  inline void set_has_locationid();
1454  inline void clear_has_locationid();
1455  inline void set_has_partitionid();
1456  inline void clear_has_partitionid();
1457  inline void set_has_partition_type();
1458  inline void clear_has_partition_type();
1459  inline void set_has_datablob();
1460  inline void clear_has_datablob();
1461  inline void set_has_convolution_param();
1462  inline void clear_has_convolution_param();
1463  inline void set_has_concate_param();
1464  inline void clear_has_concate_param();
1465  inline void set_has_data_param();
1466  inline void clear_has_data_param();
1467  inline void set_has_dropout_param();
1468  inline void clear_has_dropout_param();
1469  inline void set_has_inner_product_param();
1470  inline void clear_has_inner_product_param();
1471  inline void set_has_lrn_param();
1472  inline void clear_has_lrn_param();
1473  inline void set_has_mnist_param();
1474  inline void clear_has_mnist_param();
1475  inline void set_has_pooling_param();
1476  inline void clear_has_pooling_param();
1477  inline void set_has_slice_param();
1478  inline void clear_has_slice_param();
1479  inline void set_has_split_param();
1480  inline void clear_has_split_param();
1481  inline void set_has_relu_param();
1482  inline void clear_has_relu_param();
1483  inline void set_has_rgbimage_param();
1484  inline void clear_has_rgbimage_param();
1485  inline void set_has_softmaxloss_param();
1486  inline void clear_has_softmaxloss_param();
1487  inline void set_has_tanh_param();
1488  inline void clear_has_tanh_param();
1489 
1490  ::google::protobuf::UnknownFieldSet _unknown_fields_;
1491 
1492  ::std::string* name_;
1493  ::std::string* type_;
1494  ::google::protobuf::RepeatedPtrField< ::std::string> srclayers_;
1495  ::google::protobuf::int32 locationid_;
1496  ::google::protobuf::int32 partitionid_;
1497  ::std::string* datablob_;
1498  ::google::protobuf::RepeatedPtrField< ::std::string> share_ary_;
1499  ::google::protobuf::RepeatedPtrField< ::singa::ParamProto > param_;
1500  ::google::protobuf::RepeatedPtrField< ::std::string> share_param_;
1501  ::google::protobuf::RepeatedField<int> exclude_;
1502  ::singa::ConvolutionProto* convolution_param_;
1503  ::singa::ConcateProto* concate_param_;
1504  ::singa::DataProto* data_param_;
1505  ::singa::DropoutProto* dropout_param_;
1506  ::singa::InnerProductProto* inner_product_param_;
1507  ::singa::LRNProto* lrn_param_;
1508  ::singa::MnistProto* mnist_param_;
1509  ::singa::PoolingProto* pooling_param_;
1510  ::google::protobuf::RepeatedPtrField< ::singa::LayerProto > sublayers_;
1511  ::singa::SliceProto* slice_param_;
1512  ::singa::SplitProto* split_param_;
1513  ::singa::ReLUProto* relu_param_;
1514  ::singa::RGBImage* rgbimage_param_;
1515  ::singa::SoftmaxLossProto* softmaxloss_param_;
1516  ::singa::TanhProto* tanh_param_;
1517  int partition_type_;
1518 
1519  mutable int _cached_size_;
1520  ::google::protobuf::uint32 _has_bits_[(26 + 31) / 32];
1521 
1522  friend void protobuf_AddDesc_model_2eproto();
1523  friend void protobuf_AssignDesc_model_2eproto();
1524  friend void protobuf_ShutdownFile_model_2eproto();
1525 
1526  void InitAsDefaultInstance();
1527  static LayerProto* default_instance_;
1528 };
1529 // -------------------------------------------------------------------
1530 
1531 class RGBImage : public ::google::protobuf::Message {
1532  public:
1533  RGBImage();
1534  virtual ~RGBImage();
1535 
1536  RGBImage(const RGBImage& from);
1537 
1538  inline RGBImage& operator=(const RGBImage& from) {
1539  CopyFrom(from);
1540  return *this;
1541  }
1542 
1543  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
1544  return _unknown_fields_;
1545  }
1546 
1547  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
1548  return &_unknown_fields_;
1549  }
1550 
1551  static const ::google::protobuf::Descriptor* descriptor();
1552  static const RGBImage& default_instance();
1553 
1554  void Swap(RGBImage* other);
1555 
1556  // implements Message ----------------------------------------------
1557 
1558  RGBImage* New() const;
1559  void CopyFrom(const ::google::protobuf::Message& from);
1560  void MergeFrom(const ::google::protobuf::Message& from);
1561  void CopyFrom(const RGBImage& from);
1562  void MergeFrom(const RGBImage& from);
1563  void Clear();
1564  bool IsInitialized() const;
1565 
1566  int ByteSize() const;
1567  bool MergePartialFromCodedStream(
1568  ::google::protobuf::io::CodedInputStream* input);
1569  void SerializeWithCachedSizes(
1570  ::google::protobuf::io::CodedOutputStream* output) const;
1571  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
1572  int GetCachedSize() const { return _cached_size_; }
1573  private:
1574  void SharedCtor();
1575  void SharedDtor();
1576  void SetCachedSize(int size) const;
1577  public:
1578 
1579  ::google::protobuf::Metadata GetMetadata() const;
1580 
1581  // nested types ----------------------------------------------------
1582 
1583  // accessors -------------------------------------------------------
1584 
1585  // optional float scale = 1 [default = 1];
1586  inline bool has_scale() const;
1587  inline void clear_scale();
1588  static const int kScaleFieldNumber = 1;
1589  inline float scale() const;
1590  inline void set_scale(float value);
1591 
1592  // optional int32 cropsize = 2 [default = 0];
1593  inline bool has_cropsize() const;
1594  inline void clear_cropsize();
1595  static const int kCropsizeFieldNumber = 2;
1596  inline ::google::protobuf::int32 cropsize() const;
1597  inline void set_cropsize(::google::protobuf::int32 value);
1598 
1599  // optional bool mirror = 3 [default = false];
1600  inline bool has_mirror() const;
1601  inline void clear_mirror();
1602  static const int kMirrorFieldNumber = 3;
1603  inline bool mirror() const;
1604  inline void set_mirror(bool value);
1605 
1606  // optional string meanfile = 4;
1607  inline bool has_meanfile() const;
1608  inline void clear_meanfile();
1609  static const int kMeanfileFieldNumber = 4;
1610  inline const ::std::string& meanfile() const;
1611  inline void set_meanfile(const ::std::string& value);
1612  inline void set_meanfile(const char* value);
1613  inline void set_meanfile(const char* value, size_t size);
1614  inline ::std::string* mutable_meanfile();
1615  inline ::std::string* release_meanfile();
1616  inline void set_allocated_meanfile(::std::string* meanfile);
1617 
1618  // @@protoc_insertion_point(class_scope:singa.RGBImage)
1619  private:
1620  inline void set_has_scale();
1621  inline void clear_has_scale();
1622  inline void set_has_cropsize();
1623  inline void clear_has_cropsize();
1624  inline void set_has_mirror();
1625  inline void clear_has_mirror();
1626  inline void set_has_meanfile();
1627  inline void clear_has_meanfile();
1628 
1629  ::google::protobuf::UnknownFieldSet _unknown_fields_;
1630 
1631  float scale_;
1632  ::google::protobuf::int32 cropsize_;
1633  ::std::string* meanfile_;
1634  bool mirror_;
1635 
1636  mutable int _cached_size_;
1637  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
1638 
1639  friend void protobuf_AddDesc_model_2eproto();
1640  friend void protobuf_AssignDesc_model_2eproto();
1641  friend void protobuf_ShutdownFile_model_2eproto();
1642 
1643  void InitAsDefaultInstance();
1644  static RGBImage* default_instance_;
1645 };
1646 // -------------------------------------------------------------------
1647 
1648 class SplitProto : public ::google::protobuf::Message {
1649  public:
1650  SplitProto();
1651  virtual ~SplitProto();
1652 
1653  SplitProto(const SplitProto& from);
1654 
1655  inline SplitProto& operator=(const SplitProto& from) {
1656  CopyFrom(from);
1657  return *this;
1658  }
1659 
1660  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
1661  return _unknown_fields_;
1662  }
1663 
1664  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
1665  return &_unknown_fields_;
1666  }
1667 
1668  static const ::google::protobuf::Descriptor* descriptor();
1669  static const SplitProto& default_instance();
1670 
1671  void Swap(SplitProto* other);
1672 
1673  // implements Message ----------------------------------------------
1674 
1675  SplitProto* New() const;
1676  void CopyFrom(const ::google::protobuf::Message& from);
1677  void MergeFrom(const ::google::protobuf::Message& from);
1678  void CopyFrom(const SplitProto& from);
1679  void MergeFrom(const SplitProto& from);
1680  void Clear();
1681  bool IsInitialized() const;
1682 
1683  int ByteSize() const;
1684  bool MergePartialFromCodedStream(
1685  ::google::protobuf::io::CodedInputStream* input);
1686  void SerializeWithCachedSizes(
1687  ::google::protobuf::io::CodedOutputStream* output) const;
1688  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
1689  int GetCachedSize() const { return _cached_size_; }
1690  private:
1691  void SharedCtor();
1692  void SharedDtor();
1693  void SetCachedSize(int size) const;
1694  public:
1695 
1696  ::google::protobuf::Metadata GetMetadata() const;
1697 
1698  // nested types ----------------------------------------------------
1699 
1700  // accessors -------------------------------------------------------
1701 
1702  // optional int32 num_splits = 1;
1703  inline bool has_num_splits() const;
1704  inline void clear_num_splits();
1705  static const int kNumSplitsFieldNumber = 1;
1706  inline ::google::protobuf::int32 num_splits() const;
1707  inline void set_num_splits(::google::protobuf::int32 value);
1708 
1709  // @@protoc_insertion_point(class_scope:singa.SplitProto)
1710  private:
1711  inline void set_has_num_splits();
1712  inline void clear_has_num_splits();
1713 
1714  ::google::protobuf::UnknownFieldSet _unknown_fields_;
1715 
1716  ::google::protobuf::int32 num_splits_;
1717 
1718  mutable int _cached_size_;
1719  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
1720 
1721  friend void protobuf_AddDesc_model_2eproto();
1722  friend void protobuf_AssignDesc_model_2eproto();
1723  friend void protobuf_ShutdownFile_model_2eproto();
1724 
1725  void InitAsDefaultInstance();
1726  static SplitProto* default_instance_;
1727 };
1728 // -------------------------------------------------------------------
1729 
1730 class TanhProto : public ::google::protobuf::Message {
1731  public:
1732  TanhProto();
1733  virtual ~TanhProto();
1734 
1735  TanhProto(const TanhProto& from);
1736 
1737  inline TanhProto& operator=(const TanhProto& from) {
1738  CopyFrom(from);
1739  return *this;
1740  }
1741 
1742  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
1743  return _unknown_fields_;
1744  }
1745 
1746  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
1747  return &_unknown_fields_;
1748  }
1749 
1750  static const ::google::protobuf::Descriptor* descriptor();
1751  static const TanhProto& default_instance();
1752 
1753  void Swap(TanhProto* other);
1754 
1755  // implements Message ----------------------------------------------
1756 
1757  TanhProto* New() const;
1758  void CopyFrom(const ::google::protobuf::Message& from);
1759  void MergeFrom(const ::google::protobuf::Message& from);
1760  void CopyFrom(const TanhProto& from);
1761  void MergeFrom(const TanhProto& from);
1762  void Clear();
1763  bool IsInitialized() const;
1764 
1765  int ByteSize() const;
1766  bool MergePartialFromCodedStream(
1767  ::google::protobuf::io::CodedInputStream* input);
1768  void SerializeWithCachedSizes(
1769  ::google::protobuf::io::CodedOutputStream* output) const;
1770  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
1771  int GetCachedSize() const { return _cached_size_; }
1772  private:
1773  void SharedCtor();
1774  void SharedDtor();
1775  void SetCachedSize(int size) const;
1776  public:
1777 
1778  ::google::protobuf::Metadata GetMetadata() const;
1779 
1780  // nested types ----------------------------------------------------
1781 
1782  // accessors -------------------------------------------------------
1783 
1784  // optional float outer_scale = 1 [default = 1];
1785  inline bool has_outer_scale() const;
1786  inline void clear_outer_scale();
1787  static const int kOuterScaleFieldNumber = 1;
1788  inline float outer_scale() const;
1789  inline void set_outer_scale(float value);
1790 
1791  // optional float inner_scale = 2 [default = 1];
1792  inline bool has_inner_scale() const;
1793  inline void clear_inner_scale();
1794  static const int kInnerScaleFieldNumber = 2;
1795  inline float inner_scale() const;
1796  inline void set_inner_scale(float value);
1797 
1798  // @@protoc_insertion_point(class_scope:singa.TanhProto)
1799  private:
1800  inline void set_has_outer_scale();
1801  inline void clear_has_outer_scale();
1802  inline void set_has_inner_scale();
1803  inline void clear_has_inner_scale();
1804 
1805  ::google::protobuf::UnknownFieldSet _unknown_fields_;
1806 
1807  float outer_scale_;
1808  float inner_scale_;
1809 
1810  mutable int _cached_size_;
1811  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
1812 
1813  friend void protobuf_AddDesc_model_2eproto();
1814  friend void protobuf_AssignDesc_model_2eproto();
1815  friend void protobuf_ShutdownFile_model_2eproto();
1816 
1817  void InitAsDefaultInstance();
1818  static TanhProto* default_instance_;
1819 };
1820 // -------------------------------------------------------------------
1821 
1822 class SoftmaxLossProto : public ::google::protobuf::Message {
1823  public:
1824  SoftmaxLossProto();
1825  virtual ~SoftmaxLossProto();
1826 
1827  SoftmaxLossProto(const SoftmaxLossProto& from);
1828 
1829  inline SoftmaxLossProto& operator=(const SoftmaxLossProto& from) {
1830  CopyFrom(from);
1831  return *this;
1832  }
1833 
1834  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
1835  return _unknown_fields_;
1836  }
1837 
1838  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
1839  return &_unknown_fields_;
1840  }
1841 
1842  static const ::google::protobuf::Descriptor* descriptor();
1843  static const SoftmaxLossProto& default_instance();
1844 
1845  void Swap(SoftmaxLossProto* other);
1846 
1847  // implements Message ----------------------------------------------
1848 
1849  SoftmaxLossProto* New() const;
1850  void CopyFrom(const ::google::protobuf::Message& from);
1851  void MergeFrom(const ::google::protobuf::Message& from);
1852  void CopyFrom(const SoftmaxLossProto& from);
1853  void MergeFrom(const SoftmaxLossProto& from);
1854  void Clear();
1855  bool IsInitialized() const;
1856 
1857  int ByteSize() const;
1858  bool MergePartialFromCodedStream(
1859  ::google::protobuf::io::CodedInputStream* input);
1860  void SerializeWithCachedSizes(
1861  ::google::protobuf::io::CodedOutputStream* output) const;
1862  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
1863  int GetCachedSize() const { return _cached_size_; }
1864  private:
1865  void SharedCtor();
1866  void SharedDtor();
1867  void SetCachedSize(int size) const;
1868  public:
1869 
1870  ::google::protobuf::Metadata GetMetadata() const;
1871 
1872  // nested types ----------------------------------------------------
1873 
1874  // accessors -------------------------------------------------------
1875 
1876  // optional int32 topk = 1 [default = 1];
1877  inline bool has_topk() const;
1878  inline void clear_topk();
1879  static const int kTopkFieldNumber = 1;
1880  inline ::google::protobuf::int32 topk() const;
1881  inline void set_topk(::google::protobuf::int32 value);
1882 
1883  // optional float scale = 2 [default = 1];
1884  inline bool has_scale() const;
1885  inline void clear_scale();
1886  static const int kScaleFieldNumber = 2;
1887  inline float scale() const;
1888  inline void set_scale(float value);
1889 
1890  // @@protoc_insertion_point(class_scope:singa.SoftmaxLossProto)
1891  private:
1892  inline void set_has_topk();
1893  inline void clear_has_topk();
1894  inline void set_has_scale();
1895  inline void clear_has_scale();
1896 
1897  ::google::protobuf::UnknownFieldSet _unknown_fields_;
1898 
1899  ::google::protobuf::int32 topk_;
1900  float scale_;
1901 
1902  mutable int _cached_size_;
1903  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
1904 
1905  friend void protobuf_AddDesc_model_2eproto();
1906  friend void protobuf_AssignDesc_model_2eproto();
1907  friend void protobuf_ShutdownFile_model_2eproto();
1908 
1909  void InitAsDefaultInstance();
1910  static SoftmaxLossProto* default_instance_;
1911 };
1912 // -------------------------------------------------------------------
1913 
1914 class ConvolutionProto : public ::google::protobuf::Message {
1915  public:
1916  ConvolutionProto();
1917  virtual ~ConvolutionProto();
1918 
1919  ConvolutionProto(const ConvolutionProto& from);
1920 
1921  inline ConvolutionProto& operator=(const ConvolutionProto& from) {
1922  CopyFrom(from);
1923  return *this;
1924  }
1925 
1926  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
1927  return _unknown_fields_;
1928  }
1929 
1930  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
1931  return &_unknown_fields_;
1932  }
1933 
1934  static const ::google::protobuf::Descriptor* descriptor();
1935  static const ConvolutionProto& default_instance();
1936 
1937  void Swap(ConvolutionProto* other);
1938 
1939  // implements Message ----------------------------------------------
1940 
1941  ConvolutionProto* New() const;
1942  void CopyFrom(const ::google::protobuf::Message& from);
1943  void MergeFrom(const ::google::protobuf::Message& from);
1944  void CopyFrom(const ConvolutionProto& from);
1945  void MergeFrom(const ConvolutionProto& from);
1946  void Clear();
1947  bool IsInitialized() const;
1948 
1949  int ByteSize() const;
1950  bool MergePartialFromCodedStream(
1951  ::google::protobuf::io::CodedInputStream* input);
1952  void SerializeWithCachedSizes(
1953  ::google::protobuf::io::CodedOutputStream* output) const;
1954  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
1955  int GetCachedSize() const { return _cached_size_; }
1956  private:
1957  void SharedCtor();
1958  void SharedDtor();
1959  void SetCachedSize(int size) const;
1960  public:
1961 
1962  ::google::protobuf::Metadata GetMetadata() const;
1963 
1964  // nested types ----------------------------------------------------
1965 
1966  // accessors -------------------------------------------------------
1967 
1968  // optional uint32 num_filters = 1;
1969  inline bool has_num_filters() const;
1970  inline void clear_num_filters();
1971  static const int kNumFiltersFieldNumber = 1;
1972  inline ::google::protobuf::uint32 num_filters() const;
1973  inline void set_num_filters(::google::protobuf::uint32 value);
1974 
1975  // optional bool bias_term = 2 [default = true];
1976  inline bool has_bias_term() const;
1977  inline void clear_bias_term();
1978  static const int kBiasTermFieldNumber = 2;
1979  inline bool bias_term() const;
1980  inline void set_bias_term(bool value);
1981 
1982  // optional uint32 pad = 3 [default = 0];
1983  inline bool has_pad() const;
1984  inline void clear_pad();
1985  static const int kPadFieldNumber = 3;
1986  inline ::google::protobuf::uint32 pad() const;
1987  inline void set_pad(::google::protobuf::uint32 value);
1988 
1989  // optional uint32 stride = 4 [default = 1];
1990  inline bool has_stride() const;
1991  inline void clear_stride();
1992  static const int kStrideFieldNumber = 4;
1993  inline ::google::protobuf::uint32 stride() const;
1994  inline void set_stride(::google::protobuf::uint32 value);
1995 
1996  // required uint32 kernel = 5;
1997  inline bool has_kernel() const;
1998  inline void clear_kernel();
1999  static const int kKernelFieldNumber = 5;
2000  inline ::google::protobuf::uint32 kernel() const;
2001  inline void set_kernel(::google::protobuf::uint32 value);
2002 
2003  // @@protoc_insertion_point(class_scope:singa.ConvolutionProto)
2004  private:
2005  inline void set_has_num_filters();
2006  inline void clear_has_num_filters();
2007  inline void set_has_bias_term();
2008  inline void clear_has_bias_term();
2009  inline void set_has_pad();
2010  inline void clear_has_pad();
2011  inline void set_has_stride();
2012  inline void clear_has_stride();
2013  inline void set_has_kernel();
2014  inline void clear_has_kernel();
2015 
2016  ::google::protobuf::UnknownFieldSet _unknown_fields_;
2017 
2018  ::google::protobuf::uint32 num_filters_;
2019  bool bias_term_;
2020  ::google::protobuf::uint32 pad_;
2021  ::google::protobuf::uint32 stride_;
2022  ::google::protobuf::uint32 kernel_;
2023 
2024  mutable int _cached_size_;
2025  ::google::protobuf::uint32 _has_bits_[(5 + 31) / 32];
2026 
2027  friend void protobuf_AddDesc_model_2eproto();
2028  friend void protobuf_AssignDesc_model_2eproto();
2029  friend void protobuf_ShutdownFile_model_2eproto();
2030 
2031  void InitAsDefaultInstance();
2032  static ConvolutionProto* default_instance_;
2033 };
2034 // -------------------------------------------------------------------
2035 
2036 class ConcateProto : public ::google::protobuf::Message {
2037  public:
2038  ConcateProto();
2039  virtual ~ConcateProto();
2040 
2041  ConcateProto(const ConcateProto& from);
2042 
2043  inline ConcateProto& operator=(const ConcateProto& from) {
2044  CopyFrom(from);
2045  return *this;
2046  }
2047 
2048  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
2049  return _unknown_fields_;
2050  }
2051 
2052  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
2053  return &_unknown_fields_;
2054  }
2055 
2056  static const ::google::protobuf::Descriptor* descriptor();
2057  static const ConcateProto& default_instance();
2058 
2059  void Swap(ConcateProto* other);
2060 
2061  // implements Message ----------------------------------------------
2062 
2063  ConcateProto* New() const;
2064  void CopyFrom(const ::google::protobuf::Message& from);
2065  void MergeFrom(const ::google::protobuf::Message& from);
2066  void CopyFrom(const ConcateProto& from);
2067  void MergeFrom(const ConcateProto& from);
2068  void Clear();
2069  bool IsInitialized() const;
2070 
2071  int ByteSize() const;
2072  bool MergePartialFromCodedStream(
2073  ::google::protobuf::io::CodedInputStream* input);
2074  void SerializeWithCachedSizes(
2075  ::google::protobuf::io::CodedOutputStream* output) const;
2076  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
2077  int GetCachedSize() const { return _cached_size_; }
2078  private:
2079  void SharedCtor();
2080  void SharedDtor();
2081  void SetCachedSize(int size) const;
2082  public:
2083 
2084  ::google::protobuf::Metadata GetMetadata() const;
2085 
2086  // nested types ----------------------------------------------------
2087 
2088  // accessors -------------------------------------------------------
2089 
2090  // optional int32 concate_dimension = 1;
2091  inline bool has_concate_dimension() const;
2092  inline void clear_concate_dimension();
2093  static const int kConcateDimensionFieldNumber = 1;
2094  inline ::google::protobuf::int32 concate_dimension() const;
2095  inline void set_concate_dimension(::google::protobuf::int32 value);
2096 
2097  // optional int32 concate_num = 2;
2098  inline bool has_concate_num() const;
2099  inline void clear_concate_num();
2100  static const int kConcateNumFieldNumber = 2;
2101  inline ::google::protobuf::int32 concate_num() const;
2102  inline void set_concate_num(::google::protobuf::int32 value);
2103 
2104  // @@protoc_insertion_point(class_scope:singa.ConcateProto)
2105  private:
2106  inline void set_has_concate_dimension();
2107  inline void clear_has_concate_dimension();
2108  inline void set_has_concate_num();
2109  inline void clear_has_concate_num();
2110 
2111  ::google::protobuf::UnknownFieldSet _unknown_fields_;
2112 
2113  ::google::protobuf::int32 concate_dimension_;
2114  ::google::protobuf::int32 concate_num_;
2115 
2116  mutable int _cached_size_;
2117  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
2118 
2119  friend void protobuf_AddDesc_model_2eproto();
2120  friend void protobuf_AssignDesc_model_2eproto();
2121  friend void protobuf_ShutdownFile_model_2eproto();
2122 
2123  void InitAsDefaultInstance();
2124  static ConcateProto* default_instance_;
2125 };
2126 // -------------------------------------------------------------------
2127 
2128 class DataProto : public ::google::protobuf::Message {
2129  public:
2130  DataProto();
2131  virtual ~DataProto();
2132 
2133  DataProto(const DataProto& from);
2134 
2135  inline DataProto& operator=(const DataProto& from) {
2136  CopyFrom(from);
2137  return *this;
2138  }
2139 
2140  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
2141  return _unknown_fields_;
2142  }
2143 
2144  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
2145  return &_unknown_fields_;
2146  }
2147 
2148  static const ::google::protobuf::Descriptor* descriptor();
2149  static const DataProto& default_instance();
2150 
2151  void Swap(DataProto* other);
2152 
2153  // implements Message ----------------------------------------------
2154 
2155  DataProto* New() const;
2156  void CopyFrom(const ::google::protobuf::Message& from);
2157  void MergeFrom(const ::google::protobuf::Message& from);
2158  void CopyFrom(const DataProto& from);
2159  void MergeFrom(const DataProto& from);
2160  void Clear();
2161  bool IsInitialized() const;
2162 
2163  int ByteSize() const;
2164  bool MergePartialFromCodedStream(
2165  ::google::protobuf::io::CodedInputStream* input);
2166  void SerializeWithCachedSizes(
2167  ::google::protobuf::io::CodedOutputStream* output) const;
2168  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
2169  int GetCachedSize() const { return _cached_size_; }
2170  private:
2171  void SharedCtor();
2172  void SharedDtor();
2173  void SetCachedSize(int size) const;
2174  public:
2175 
2176  ::google::protobuf::Metadata GetMetadata() const;
2177 
2178  // nested types ----------------------------------------------------
2179 
2180  // accessors -------------------------------------------------------
2181 
2182  // optional string source = 1;
2183  inline bool has_source() const;
2184  inline void clear_source();
2185  static const int kSourceFieldNumber = 1;
2186  inline const ::std::string& source() const;
2187  inline void set_source(const ::std::string& value);
2188  inline void set_source(const char* value);
2189  inline void set_source(const char* value, size_t size);
2190  inline ::std::string* mutable_source();
2191  inline ::std::string* release_source();
2192  inline void set_allocated_source(::std::string* source);
2193 
2194  // optional string path = 2;
2195  inline bool has_path() const;
2196  inline void clear_path();
2197  static const int kPathFieldNumber = 2;
2198  inline const ::std::string& path() const;
2199  inline void set_path(const ::std::string& value);
2200  inline void set_path(const char* value);
2201  inline void set_path(const char* value, size_t size);
2202  inline ::std::string* mutable_path();
2203  inline ::std::string* release_path();
2204  inline void set_allocated_path(::std::string* path);
2205 
2206  // optional uint32 batchsize = 4;
2207  inline bool has_batchsize() const;
2208  inline void clear_batchsize();
2209  static const int kBatchsizeFieldNumber = 4;
2210  inline ::google::protobuf::uint32 batchsize() const;
2211  inline void set_batchsize(::google::protobuf::uint32 value);
2212 
2213  // optional uint32 random_skip = 5 [default = 0];
2214  inline bool has_random_skip() const;
2215  inline void clear_random_skip();
2216  static const int kRandomSkipFieldNumber = 5;
2217  inline ::google::protobuf::uint32 random_skip() const;
2218  inline void set_random_skip(::google::protobuf::uint32 value);
2219 
2220  // @@protoc_insertion_point(class_scope:singa.DataProto)
2221  private:
2222  inline void set_has_source();
2223  inline void clear_has_source();
2224  inline void set_has_path();
2225  inline void clear_has_path();
2226  inline void set_has_batchsize();
2227  inline void clear_has_batchsize();
2228  inline void set_has_random_skip();
2229  inline void clear_has_random_skip();
2230 
2231  ::google::protobuf::UnknownFieldSet _unknown_fields_;
2232 
2233  ::std::string* source_;
2234  ::std::string* path_;
2235  ::google::protobuf::uint32 batchsize_;
2236  ::google::protobuf::uint32 random_skip_;
2237 
2238  mutable int _cached_size_;
2239  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
2240 
2241  friend void protobuf_AddDesc_model_2eproto();
2242  friend void protobuf_AssignDesc_model_2eproto();
2243  friend void protobuf_ShutdownFile_model_2eproto();
2244 
2245  void InitAsDefaultInstance();
2246  static DataProto* default_instance_;
2247 };
2248 // -------------------------------------------------------------------
2249 
2250 class MnistProto : public ::google::protobuf::Message {
2251  public:
2252  MnistProto();
2253  virtual ~MnistProto();
2254 
2255  MnistProto(const MnistProto& from);
2256 
2257  inline MnistProto& operator=(const MnistProto& from) {
2258  CopyFrom(from);
2259  return *this;
2260  }
2261 
2262  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
2263  return _unknown_fields_;
2264  }
2265 
2266  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
2267  return &_unknown_fields_;
2268  }
2269 
2270  static const ::google::protobuf::Descriptor* descriptor();
2271  static const MnistProto& default_instance();
2272 
2273  void Swap(MnistProto* other);
2274 
2275  // implements Message ----------------------------------------------
2276 
2277  MnistProto* New() const;
2278  void CopyFrom(const ::google::protobuf::Message& from);
2279  void MergeFrom(const ::google::protobuf::Message& from);
2280  void CopyFrom(const MnistProto& from);
2281  void MergeFrom(const MnistProto& from);
2282  void Clear();
2283  bool IsInitialized() const;
2284 
2285  int ByteSize() const;
2286  bool MergePartialFromCodedStream(
2287  ::google::protobuf::io::CodedInputStream* input);
2288  void SerializeWithCachedSizes(
2289  ::google::protobuf::io::CodedOutputStream* output) const;
2290  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
2291  int GetCachedSize() const { return _cached_size_; }
2292  private:
2293  void SharedCtor();
2294  void SharedDtor();
2295  void SetCachedSize(int size) const;
2296  public:
2297 
2298  ::google::protobuf::Metadata GetMetadata() const;
2299 
2300  // nested types ----------------------------------------------------
2301 
2302  // accessors -------------------------------------------------------
2303 
2304  // optional int32 kernel = 1 [default = 0];
2305  inline bool has_kernel() const;
2306  inline void clear_kernel();
2307  static const int kKernelFieldNumber = 1;
2308  inline ::google::protobuf::int32 kernel() const;
2309  inline void set_kernel(::google::protobuf::int32 value);
2310 
2311  // optional float sigma = 2 [default = 0];
2312  inline bool has_sigma() const;
2313  inline void clear_sigma();
2314  static const int kSigmaFieldNumber = 2;
2315  inline float sigma() const;
2316  inline void set_sigma(float value);
2317 
2318  // optional float alpha = 3 [default = 0];
2319  inline bool has_alpha() const;
2320  inline void clear_alpha();
2321  static const int kAlphaFieldNumber = 3;
2322  inline float alpha() const;
2323  inline void set_alpha(float value);
2324 
2325  // optional float beta = 4 [default = 0];
2326  inline bool has_beta() const;
2327  inline void clear_beta();
2328  static const int kBetaFieldNumber = 4;
2329  inline float beta() const;
2330  inline void set_beta(float value);
2331 
2332  // optional float gamma = 5 [default = 0];
2333  inline bool has_gamma() const;
2334  inline void clear_gamma();
2335  static const int kGammaFieldNumber = 5;
2336  inline float gamma() const;
2337  inline void set_gamma(float value);
2338 
2339  // optional int32 resize = 6 [default = 0];
2340  inline bool has_resize() const;
2341  inline void clear_resize();
2342  static const int kResizeFieldNumber = 6;
2343  inline ::google::protobuf::int32 resize() const;
2344  inline void set_resize(::google::protobuf::int32 value);
2345 
2346  // optional int32 elastic_freq = 7 [default = 0];
2347  inline bool has_elastic_freq() const;
2348  inline void clear_elastic_freq();
2349  static const int kElasticFreqFieldNumber = 7;
2350  inline ::google::protobuf::int32 elastic_freq() const;
2351  inline void set_elastic_freq(::google::protobuf::int32 value);
2352 
2353  // optional float norm_a = 8 [default = 1];
2354  inline bool has_norm_a() const;
2355  inline void clear_norm_a();
2356  static const int kNormAFieldNumber = 8;
2357  inline float norm_a() const;
2358  inline void set_norm_a(float value);
2359 
2360  // optional float norm_b = 9 [default = 0];
2361  inline bool has_norm_b() const;
2362  inline void clear_norm_b();
2363  static const int kNormBFieldNumber = 9;
2364  inline float norm_b() const;
2365  inline void set_norm_b(float value);
2366 
2367  // @@protoc_insertion_point(class_scope:singa.MnistProto)
2368  private:
2369  inline void set_has_kernel();
2370  inline void clear_has_kernel();
2371  inline void set_has_sigma();
2372  inline void clear_has_sigma();
2373  inline void set_has_alpha();
2374  inline void clear_has_alpha();
2375  inline void set_has_beta();
2376  inline void clear_has_beta();
2377  inline void set_has_gamma();
2378  inline void clear_has_gamma();
2379  inline void set_has_resize();
2380  inline void clear_has_resize();
2381  inline void set_has_elastic_freq();
2382  inline void clear_has_elastic_freq();
2383  inline void set_has_norm_a();
2384  inline void clear_has_norm_a();
2385  inline void set_has_norm_b();
2386  inline void clear_has_norm_b();
2387 
2388  ::google::protobuf::UnknownFieldSet _unknown_fields_;
2389 
2390  ::google::protobuf::int32 kernel_;
2391  float sigma_;
2392  float alpha_;
2393  float beta_;
2394  float gamma_;
2395  ::google::protobuf::int32 resize_;
2396  ::google::protobuf::int32 elastic_freq_;
2397  float norm_a_;
2398  float norm_b_;
2399 
2400  mutable int _cached_size_;
2401  ::google::protobuf::uint32 _has_bits_[(9 + 31) / 32];
2402 
2403  friend void protobuf_AddDesc_model_2eproto();
2404  friend void protobuf_AssignDesc_model_2eproto();
2405  friend void protobuf_ShutdownFile_model_2eproto();
2406 
2407  void InitAsDefaultInstance();
2408  static MnistProto* default_instance_;
2409 };
2410 // -------------------------------------------------------------------
2411 
2412 class DropoutProto : public ::google::protobuf::Message {
2413  public:
2414  DropoutProto();
2415  virtual ~DropoutProto();
2416 
2417  DropoutProto(const DropoutProto& from);
2418 
2419  inline DropoutProto& operator=(const DropoutProto& from) {
2420  CopyFrom(from);
2421  return *this;
2422  }
2423 
2424  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
2425  return _unknown_fields_;
2426  }
2427 
2428  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
2429  return &_unknown_fields_;
2430  }
2431 
2432  static const ::google::protobuf::Descriptor* descriptor();
2433  static const DropoutProto& default_instance();
2434 
2435  void Swap(DropoutProto* other);
2436 
2437  // implements Message ----------------------------------------------
2438 
2439  DropoutProto* New() const;
2440  void CopyFrom(const ::google::protobuf::Message& from);
2441  void MergeFrom(const ::google::protobuf::Message& from);
2442  void CopyFrom(const DropoutProto& from);
2443  void MergeFrom(const DropoutProto& from);
2444  void Clear();
2445  bool IsInitialized() const;
2446 
2447  int ByteSize() const;
2448  bool MergePartialFromCodedStream(
2449  ::google::protobuf::io::CodedInputStream* input);
2450  void SerializeWithCachedSizes(
2451  ::google::protobuf::io::CodedOutputStream* output) const;
2452  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
2453  int GetCachedSize() const { return _cached_size_; }
2454  private:
2455  void SharedCtor();
2456  void SharedDtor();
2457  void SetCachedSize(int size) const;
2458  public:
2459 
2460  ::google::protobuf::Metadata GetMetadata() const;
2461 
2462  // nested types ----------------------------------------------------
2463 
2464  // accessors -------------------------------------------------------
2465 
2466  // optional float dropout_ratio = 1 [default = 0.5];
2467  inline bool has_dropout_ratio() const;
2468  inline void clear_dropout_ratio();
2469  static const int kDropoutRatioFieldNumber = 1;
2470  inline float dropout_ratio() const;
2471  inline void set_dropout_ratio(float value);
2472 
2473  // @@protoc_insertion_point(class_scope:singa.DropoutProto)
2474  private:
2475  inline void set_has_dropout_ratio();
2476  inline void clear_has_dropout_ratio();
2477 
2478  ::google::protobuf::UnknownFieldSet _unknown_fields_;
2479 
2480  float dropout_ratio_;
2481 
2482  mutable int _cached_size_;
2483  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
2484 
2485  friend void protobuf_AddDesc_model_2eproto();
2486  friend void protobuf_AssignDesc_model_2eproto();
2487  friend void protobuf_ShutdownFile_model_2eproto();
2488 
2489  void InitAsDefaultInstance();
2490  static DropoutProto* default_instance_;
2491 };
2492 // -------------------------------------------------------------------
2493 
2494 class InnerProductProto : public ::google::protobuf::Message {
2495  public:
2497  virtual ~InnerProductProto();
2498 
2499  InnerProductProto(const InnerProductProto& from);
2500 
2501  inline InnerProductProto& operator=(const InnerProductProto& from) {
2502  CopyFrom(from);
2503  return *this;
2504  }
2505 
2506  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
2507  return _unknown_fields_;
2508  }
2509 
2510  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
2511  return &_unknown_fields_;
2512  }
2513 
2514  static const ::google::protobuf::Descriptor* descriptor();
2515  static const InnerProductProto& default_instance();
2516 
2517  void Swap(InnerProductProto* other);
2518 
2519  // implements Message ----------------------------------------------
2520 
2521  InnerProductProto* New() const;
2522  void CopyFrom(const ::google::protobuf::Message& from);
2523  void MergeFrom(const ::google::protobuf::Message& from);
2524  void CopyFrom(const InnerProductProto& from);
2525  void MergeFrom(const InnerProductProto& from);
2526  void Clear();
2527  bool IsInitialized() const;
2528 
2529  int ByteSize() const;
2530  bool MergePartialFromCodedStream(
2531  ::google::protobuf::io::CodedInputStream* input);
2532  void SerializeWithCachedSizes(
2533  ::google::protobuf::io::CodedOutputStream* output) const;
2534  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
2535  int GetCachedSize() const { return _cached_size_; }
2536  private:
2537  void SharedCtor();
2538  void SharedDtor();
2539  void SetCachedSize(int size) const;
2540  public:
2541 
2542  ::google::protobuf::Metadata GetMetadata() const;
2543 
2544  // nested types ----------------------------------------------------
2545 
2546  // accessors -------------------------------------------------------
2547 
2548  // optional uint32 num_output = 1;
2549  inline bool has_num_output() const;
2550  inline void clear_num_output();
2551  static const int kNumOutputFieldNumber = 1;
2552  inline ::google::protobuf::uint32 num_output() const;
2553  inline void set_num_output(::google::protobuf::uint32 value);
2554 
2555  // optional bool bias_term = 2 [default = true];
2556  inline bool has_bias_term() const;
2557  inline void clear_bias_term();
2558  static const int kBiasTermFieldNumber = 2;
2559  inline bool bias_term() const;
2560  inline void set_bias_term(bool value);
2561 
2562  // @@protoc_insertion_point(class_scope:singa.InnerProductProto)
2563  private:
2564  inline void set_has_num_output();
2565  inline void clear_has_num_output();
2566  inline void set_has_bias_term();
2567  inline void clear_has_bias_term();
2568 
2569  ::google::protobuf::UnknownFieldSet _unknown_fields_;
2570 
2571  ::google::protobuf::uint32 num_output_;
2572  bool bias_term_;
2573 
2574  mutable int _cached_size_;
2575  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
2576 
2577  friend void protobuf_AddDesc_model_2eproto();
2578  friend void protobuf_AssignDesc_model_2eproto();
2579  friend void protobuf_ShutdownFile_model_2eproto();
2580 
2581  void InitAsDefaultInstance();
2582  static InnerProductProto* default_instance_;
2583 };
2584 // -------------------------------------------------------------------
2585 
2586 class LRNProto : public ::google::protobuf::Message {
2587  public:
2588  LRNProto();
2589  virtual ~LRNProto();
2590 
2591  LRNProto(const LRNProto& from);
2592 
2593  inline LRNProto& operator=(const LRNProto& from) {
2594  CopyFrom(from);
2595  return *this;
2596  }
2597 
2598  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
2599  return _unknown_fields_;
2600  }
2601 
2602  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
2603  return &_unknown_fields_;
2604  }
2605 
2606  static const ::google::protobuf::Descriptor* descriptor();
2607  static const LRNProto& default_instance();
2608 
2609  void Swap(LRNProto* other);
2610 
2611  // implements Message ----------------------------------------------
2612 
2613  LRNProto* New() const;
2614  void CopyFrom(const ::google::protobuf::Message& from);
2615  void MergeFrom(const ::google::protobuf::Message& from);
2616  void CopyFrom(const LRNProto& from);
2617  void MergeFrom(const LRNProto& from);
2618  void Clear();
2619  bool IsInitialized() const;
2620 
2621  int ByteSize() const;
2622  bool MergePartialFromCodedStream(
2623  ::google::protobuf::io::CodedInputStream* input);
2624  void SerializeWithCachedSizes(
2625  ::google::protobuf::io::CodedOutputStream* output) const;
2626  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
2627  int GetCachedSize() const { return _cached_size_; }
2628  private:
2629  void SharedCtor();
2630  void SharedDtor();
2631  void SetCachedSize(int size) const;
2632  public:
2633 
2634  ::google::protobuf::Metadata GetMetadata() const;
2635 
2636  // nested types ----------------------------------------------------
2637 
2638  typedef LRNProto_NormRegion NormRegion;
2639  static const NormRegion ACROSS_CHANNELS = LRNProto_NormRegion_ACROSS_CHANNELS;
2640  static const NormRegion WITHIN_CHANNEL = LRNProto_NormRegion_WITHIN_CHANNEL;
2641  static inline bool NormRegion_IsValid(int value) {
2642  return LRNProto_NormRegion_IsValid(value);
2643  }
2644  static const NormRegion NormRegion_MIN =
2645  LRNProto_NormRegion_NormRegion_MIN;
2646  static const NormRegion NormRegion_MAX =
2647  LRNProto_NormRegion_NormRegion_MAX;
2648  static const int NormRegion_ARRAYSIZE =
2649  LRNProto_NormRegion_NormRegion_ARRAYSIZE;
2650  static inline const ::google::protobuf::EnumDescriptor*
2651  NormRegion_descriptor() {
2652  return LRNProto_NormRegion_descriptor();
2653  }
2654  static inline const ::std::string& NormRegion_Name(NormRegion value) {
2655  return LRNProto_NormRegion_Name(value);
2656  }
2657  static inline bool NormRegion_Parse(const ::std::string& name,
2658  NormRegion* value) {
2659  return LRNProto_NormRegion_Parse(name, value);
2660  }
2661 
2662  // accessors -------------------------------------------------------
2663 
2664  // optional uint32 local_size = 1 [default = 5];
2665  inline bool has_local_size() const;
2666  inline void clear_local_size();
2667  static const int kLocalSizeFieldNumber = 1;
2668  inline ::google::protobuf::uint32 local_size() const;
2669  inline void set_local_size(::google::protobuf::uint32 value);
2670 
2671  // optional float alpha = 2 [default = 1];
2672  inline bool has_alpha() const;
2673  inline void clear_alpha();
2674  static const int kAlphaFieldNumber = 2;
2675  inline float alpha() const;
2676  inline void set_alpha(float value);
2677 
2678  // optional float beta = 3 [default = 0.75];
2679  inline bool has_beta() const;
2680  inline void clear_beta();
2681  static const int kBetaFieldNumber = 3;
2682  inline float beta() const;
2683  inline void set_beta(float value);
2684 
2685  // optional .singa.LRNProto.NormRegion norm_region = 4 [default = ACROSS_CHANNELS];
2686  inline bool has_norm_region() const;
2687  inline void clear_norm_region();
2688  static const int kNormRegionFieldNumber = 4;
2689  inline ::singa::LRNProto_NormRegion norm_region() const;
2690  inline void set_norm_region(::singa::LRNProto_NormRegion value);
2691 
2692  // optional float knorm = 5 [default = 1];
2693  inline bool has_knorm() const;
2694  inline void clear_knorm();
2695  static const int kKnormFieldNumber = 5;
2696  inline float knorm() const;
2697  inline void set_knorm(float value);
2698 
2699  // @@protoc_insertion_point(class_scope:singa.LRNProto)
2700  private:
2701  inline void set_has_local_size();
2702  inline void clear_has_local_size();
2703  inline void set_has_alpha();
2704  inline void clear_has_alpha();
2705  inline void set_has_beta();
2706  inline void clear_has_beta();
2707  inline void set_has_norm_region();
2708  inline void clear_has_norm_region();
2709  inline void set_has_knorm();
2710  inline void clear_has_knorm();
2711 
2712  ::google::protobuf::UnknownFieldSet _unknown_fields_;
2713 
2714  ::google::protobuf::uint32 local_size_;
2715  float alpha_;
2716  float beta_;
2717  int norm_region_;
2718  float knorm_;
2719 
2720  mutable int _cached_size_;
2721  ::google::protobuf::uint32 _has_bits_[(5 + 31) / 32];
2722 
2723  friend void protobuf_AddDesc_model_2eproto();
2724  friend void protobuf_AssignDesc_model_2eproto();
2725  friend void protobuf_ShutdownFile_model_2eproto();
2726 
2727  void InitAsDefaultInstance();
2728  static LRNProto* default_instance_;
2729 };
2730 // -------------------------------------------------------------------
2731 
2732 class PoolingProto : public ::google::protobuf::Message {
2733  public:
2734  PoolingProto();
2735  virtual ~PoolingProto();
2736 
2737  PoolingProto(const PoolingProto& from);
2738 
2739  inline PoolingProto& operator=(const PoolingProto& from) {
2740  CopyFrom(from);
2741  return *this;
2742  }
2743 
2744  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
2745  return _unknown_fields_;
2746  }
2747 
2748  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
2749  return &_unknown_fields_;
2750  }
2751 
2752  static const ::google::protobuf::Descriptor* descriptor();
2753  static const PoolingProto& default_instance();
2754 
2755  void Swap(PoolingProto* other);
2756 
2757  // implements Message ----------------------------------------------
2758 
2759  PoolingProto* New() const;
2760  void CopyFrom(const ::google::protobuf::Message& from);
2761  void MergeFrom(const ::google::protobuf::Message& from);
2762  void CopyFrom(const PoolingProto& from);
2763  void MergeFrom(const PoolingProto& from);
2764  void Clear();
2765  bool IsInitialized() const;
2766 
2767  int ByteSize() const;
2768  bool MergePartialFromCodedStream(
2769  ::google::protobuf::io::CodedInputStream* input);
2770  void SerializeWithCachedSizes(
2771  ::google::protobuf::io::CodedOutputStream* output) const;
2772  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
2773  int GetCachedSize() const { return _cached_size_; }
2774  private:
2775  void SharedCtor();
2776  void SharedDtor();
2777  void SetCachedSize(int size) const;
2778  public:
2779 
2780  ::google::protobuf::Metadata GetMetadata() const;
2781 
2782  // nested types ----------------------------------------------------
2783 
2784  typedef PoolingProto_PoolMethod PoolMethod;
2785  static const PoolMethod MAX = PoolingProto_PoolMethod_MAX;
2786  static const PoolMethod AVE = PoolingProto_PoolMethod_AVE;
2787  static inline bool PoolMethod_IsValid(int value) {
2788  return PoolingProto_PoolMethod_IsValid(value);
2789  }
2790  static const PoolMethod PoolMethod_MIN =
2791  PoolingProto_PoolMethod_PoolMethod_MIN;
2792  static const PoolMethod PoolMethod_MAX =
2793  PoolingProto_PoolMethod_PoolMethod_MAX;
2794  static const int PoolMethod_ARRAYSIZE =
2795  PoolingProto_PoolMethod_PoolMethod_ARRAYSIZE;
2796  static inline const ::google::protobuf::EnumDescriptor*
2797  PoolMethod_descriptor() {
2798  return PoolingProto_PoolMethod_descriptor();
2799  }
2800  static inline const ::std::string& PoolMethod_Name(PoolMethod value) {
2801  return PoolingProto_PoolMethod_Name(value);
2802  }
2803  static inline bool PoolMethod_Parse(const ::std::string& name,
2804  PoolMethod* value) {
2805  return PoolingProto_PoolMethod_Parse(name, value);
2806  }
2807 
2808  // accessors -------------------------------------------------------
2809 
2810  // optional .singa.PoolingProto.PoolMethod pool = 1 [default = MAX];
2811  inline bool has_pool() const;
2812  inline void clear_pool();
2813  static const int kPoolFieldNumber = 1;
2814  inline ::singa::PoolingProto_PoolMethod pool() const;
2815  inline void set_pool(::singa::PoolingProto_PoolMethod value);
2816 
2817  // required uint32 kernel = 2;
2818  inline bool has_kernel() const;
2819  inline void clear_kernel();
2820  static const int kKernelFieldNumber = 2;
2821  inline ::google::protobuf::uint32 kernel() const;
2822  inline void set_kernel(::google::protobuf::uint32 value);
2823 
2824  // optional uint32 pad = 4 [default = 0];
2825  inline bool has_pad() const;
2826  inline void clear_pad();
2827  static const int kPadFieldNumber = 4;
2828  inline ::google::protobuf::uint32 pad() const;
2829  inline void set_pad(::google::protobuf::uint32 value);
2830 
2831  // optional uint32 stride = 3 [default = 1];
2832  inline bool has_stride() const;
2833  inline void clear_stride();
2834  static const int kStrideFieldNumber = 3;
2835  inline ::google::protobuf::uint32 stride() const;
2836  inline void set_stride(::google::protobuf::uint32 value);
2837 
2838  // @@protoc_insertion_point(class_scope:singa.PoolingProto)
2839  private:
2840  inline void set_has_pool();
2841  inline void clear_has_pool();
2842  inline void set_has_kernel();
2843  inline void clear_has_kernel();
2844  inline void set_has_pad();
2845  inline void clear_has_pad();
2846  inline void set_has_stride();
2847  inline void clear_has_stride();
2848 
2849  ::google::protobuf::UnknownFieldSet _unknown_fields_;
2850 
2851  int pool_;
2852  ::google::protobuf::uint32 kernel_;
2853  ::google::protobuf::uint32 pad_;
2854  ::google::protobuf::uint32 stride_;
2855 
2856  mutable int _cached_size_;
2857  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
2858 
2859  friend void protobuf_AddDesc_model_2eproto();
2860  friend void protobuf_AssignDesc_model_2eproto();
2861  friend void protobuf_ShutdownFile_model_2eproto();
2862 
2863  void InitAsDefaultInstance();
2864  static PoolingProto* default_instance_;
2865 };
2866 // -------------------------------------------------------------------
2867 
2868 class SliceProto : public ::google::protobuf::Message {
2869  public:
2870  SliceProto();
2871  virtual ~SliceProto();
2872 
2873  SliceProto(const SliceProto& from);
2874 
2875  inline SliceProto& operator=(const SliceProto& from) {
2876  CopyFrom(from);
2877  return *this;
2878  }
2879 
2880  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
2881  return _unknown_fields_;
2882  }
2883 
2884  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
2885  return &_unknown_fields_;
2886  }
2887 
2888  static const ::google::protobuf::Descriptor* descriptor();
2889  static const SliceProto& default_instance();
2890 
2891  void Swap(SliceProto* other);
2892 
2893  // implements Message ----------------------------------------------
2894 
2895  SliceProto* New() const;
2896  void CopyFrom(const ::google::protobuf::Message& from);
2897  void MergeFrom(const ::google::protobuf::Message& from);
2898  void CopyFrom(const SliceProto& from);
2899  void MergeFrom(const SliceProto& from);
2900  void Clear();
2901  bool IsInitialized() const;
2902 
2903  int ByteSize() const;
2904  bool MergePartialFromCodedStream(
2905  ::google::protobuf::io::CodedInputStream* input);
2906  void SerializeWithCachedSizes(
2907  ::google::protobuf::io::CodedOutputStream* output) const;
2908  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
2909  int GetCachedSize() const { return _cached_size_; }
2910  private:
2911  void SharedCtor();
2912  void SharedDtor();
2913  void SetCachedSize(int size) const;
2914  public:
2915 
2916  ::google::protobuf::Metadata GetMetadata() const;
2917 
2918  // nested types ----------------------------------------------------
2919 
2920  // accessors -------------------------------------------------------
2921 
2922  // optional int32 slice_dimension = 1;
2923  inline bool has_slice_dimension() const;
2924  inline void clear_slice_dimension();
2925  static const int kSliceDimensionFieldNumber = 1;
2926  inline ::google::protobuf::int32 slice_dimension() const;
2927  inline void set_slice_dimension(::google::protobuf::int32 value);
2928 
2929  // optional int32 slice_num = 2;
2930  inline bool has_slice_num() const;
2931  inline void clear_slice_num();
2932  static const int kSliceNumFieldNumber = 2;
2933  inline ::google::protobuf::int32 slice_num() const;
2934  inline void set_slice_num(::google::protobuf::int32 value);
2935 
2936  // @@protoc_insertion_point(class_scope:singa.SliceProto)
2937  private:
2938  inline void set_has_slice_dimension();
2939  inline void clear_has_slice_dimension();
2940  inline void set_has_slice_num();
2941  inline void clear_has_slice_num();
2942 
2943  ::google::protobuf::UnknownFieldSet _unknown_fields_;
2944 
2945  ::google::protobuf::int32 slice_dimension_;
2946  ::google::protobuf::int32 slice_num_;
2947 
2948  mutable int _cached_size_;
2949  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
2950 
2951  friend void protobuf_AddDesc_model_2eproto();
2952  friend void protobuf_AssignDesc_model_2eproto();
2953  friend void protobuf_ShutdownFile_model_2eproto();
2954 
2955  void InitAsDefaultInstance();
2956  static SliceProto* default_instance_;
2957 };
2958 // -------------------------------------------------------------------
2959 
2960 class ReLUProto : public ::google::protobuf::Message {
2961  public:
2962  ReLUProto();
2963  virtual ~ReLUProto();
2964 
2965  ReLUProto(const ReLUProto& from);
2966 
2967  inline ReLUProto& operator=(const ReLUProto& from) {
2968  CopyFrom(from);
2969  return *this;
2970  }
2971 
2972  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
2973  return _unknown_fields_;
2974  }
2975 
2976  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
2977  return &_unknown_fields_;
2978  }
2979 
2980  static const ::google::protobuf::Descriptor* descriptor();
2981  static const ReLUProto& default_instance();
2982 
2983  void Swap(ReLUProto* other);
2984 
2985  // implements Message ----------------------------------------------
2986 
2987  ReLUProto* New() const;
2988  void CopyFrom(const ::google::protobuf::Message& from);
2989  void MergeFrom(const ::google::protobuf::Message& from);
2990  void CopyFrom(const ReLUProto& from);
2991  void MergeFrom(const ReLUProto& from);
2992  void Clear();
2993  bool IsInitialized() const;
2994 
2995  int ByteSize() const;
2996  bool MergePartialFromCodedStream(
2997  ::google::protobuf::io::CodedInputStream* input);
2998  void SerializeWithCachedSizes(
2999  ::google::protobuf::io::CodedOutputStream* output) const;
3000  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
3001  int GetCachedSize() const { return _cached_size_; }
3002  private:
3003  void SharedCtor();
3004  void SharedDtor();
3005  void SetCachedSize(int size) const;
3006  public:
3007 
3008  ::google::protobuf::Metadata GetMetadata() const;
3009 
3010  // nested types ----------------------------------------------------
3011 
3012  // accessors -------------------------------------------------------
3013 
3014  // optional float negative_slope = 1 [default = 0];
3015  inline bool has_negative_slope() const;
3016  inline void clear_negative_slope();
3017  static const int kNegativeSlopeFieldNumber = 1;
3018  inline float negative_slope() const;
3019  inline void set_negative_slope(float value);
3020 
3021  // @@protoc_insertion_point(class_scope:singa.ReLUProto)
3022  private:
3023  inline void set_has_negative_slope();
3024  inline void clear_has_negative_slope();
3025 
3026  ::google::protobuf::UnknownFieldSet _unknown_fields_;
3027 
3028  float negative_slope_;
3029 
3030  mutable int _cached_size_;
3031  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
3032 
3033  friend void protobuf_AddDesc_model_2eproto();
3034  friend void protobuf_AssignDesc_model_2eproto();
3035  friend void protobuf_ShutdownFile_model_2eproto();
3036 
3037  void InitAsDefaultInstance();
3038  static ReLUProto* default_instance_;
3039 };
3040 // -------------------------------------------------------------------
3041 
3042 class Record : public ::google::protobuf::Message {
3043  public:
3044  Record();
3045  virtual ~Record();
3046 
3047  Record(const Record& from);
3048 
3049  inline Record& operator=(const Record& from) {
3050  CopyFrom(from);
3051  return *this;
3052  }
3053 
3054  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
3055  return _unknown_fields_;
3056  }
3057 
3058  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
3059  return &_unknown_fields_;
3060  }
3061 
3062  static const ::google::protobuf::Descriptor* descriptor();
3063  static const Record& default_instance();
3064 
3065  void Swap(Record* other);
3066 
3067  // implements Message ----------------------------------------------
3068 
3069  Record* New() const;
3070  void CopyFrom(const ::google::protobuf::Message& from);
3071  void MergeFrom(const ::google::protobuf::Message& from);
3072  void CopyFrom(const Record& from);
3073  void MergeFrom(const Record& from);
3074  void Clear();
3075  bool IsInitialized() const;
3076 
3077  int ByteSize() const;
3078  bool MergePartialFromCodedStream(
3079  ::google::protobuf::io::CodedInputStream* input);
3080  void SerializeWithCachedSizes(
3081  ::google::protobuf::io::CodedOutputStream* output) const;
3082  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
3083  int GetCachedSize() const { return _cached_size_; }
3084  private:
3085  void SharedCtor();
3086  void SharedDtor();
3087  void SetCachedSize(int size) const;
3088  public:
3089 
3090  ::google::protobuf::Metadata GetMetadata() const;
3091 
3092  // nested types ----------------------------------------------------
3093 
3094  typedef Record_Type Type;
3095  static const Type kSingleLabelImage = Record_Type_kSingleLabelImage;
3096  static inline bool Type_IsValid(int value) {
3097  return Record_Type_IsValid(value);
3098  }
3099  static const Type Type_MIN =
3100  Record_Type_Type_MIN;
3101  static const Type Type_MAX =
3102  Record_Type_Type_MAX;
3103  static const int Type_ARRAYSIZE =
3104  Record_Type_Type_ARRAYSIZE;
3105  static inline const ::google::protobuf::EnumDescriptor*
3106  Type_descriptor() {
3107  return Record_Type_descriptor();
3108  }
3109  static inline const ::std::string& Type_Name(Type value) {
3110  return Record_Type_Name(value);
3111  }
3112  static inline bool Type_Parse(const ::std::string& name,
3113  Type* value) {
3114  return Record_Type_Parse(name, value);
3115  }
3116 
3117  // accessors -------------------------------------------------------
3118 
3119  // optional .singa.Record.Type type = 1 [default = kSingleLabelImage];
3120  inline bool has_type() const;
3121  inline void clear_type();
3122  static const int kTypeFieldNumber = 1;
3123  inline ::singa::Record_Type type() const;
3124  inline void set_type(::singa::Record_Type value);
3125 
3126  // optional .singa.SingleLabelImageRecord image = 2;
3127  inline bool has_image() const;
3128  inline void clear_image();
3129  static const int kImageFieldNumber = 2;
3130  inline const ::singa::SingleLabelImageRecord& image() const;
3131  inline ::singa::SingleLabelImageRecord* mutable_image();
3132  inline ::singa::SingleLabelImageRecord* release_image();
3133  inline void set_allocated_image(::singa::SingleLabelImageRecord* image);
3134 
3135  // @@protoc_insertion_point(class_scope:singa.Record)
3136  private:
3137  inline void set_has_type();
3138  inline void clear_has_type();
3139  inline void set_has_image();
3140  inline void clear_has_image();
3141 
3142  ::google::protobuf::UnknownFieldSet _unknown_fields_;
3143 
3145  int type_;
3146 
3147  mutable int _cached_size_;
3148  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
3149 
3150  friend void protobuf_AddDesc_model_2eproto();
3151  friend void protobuf_AssignDesc_model_2eproto();
3152  friend void protobuf_ShutdownFile_model_2eproto();
3153 
3154  void InitAsDefaultInstance();
3155  static Record* default_instance_;
3156 };
3157 // -------------------------------------------------------------------
3158 
3159 class Datum : public ::google::protobuf::Message {
3160  public:
3161  Datum();
3162  virtual ~Datum();
3163 
3164  Datum(const Datum& from);
3165 
3166  inline Datum& operator=(const Datum& from) {
3167  CopyFrom(from);
3168  return *this;
3169  }
3170 
3171  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
3172  return _unknown_fields_;
3173  }
3174 
3175  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
3176  return &_unknown_fields_;
3177  }
3178 
3179  static const ::google::protobuf::Descriptor* descriptor();
3180  static const Datum& default_instance();
3181 
3182  void Swap(Datum* other);
3183 
3184  // implements Message ----------------------------------------------
3185 
3186  Datum* New() const;
3187  void CopyFrom(const ::google::protobuf::Message& from);
3188  void MergeFrom(const ::google::protobuf::Message& from);
3189  void CopyFrom(const Datum& from);
3190  void MergeFrom(const Datum& from);
3191  void Clear();
3192  bool IsInitialized() const;
3193 
3194  int ByteSize() const;
3195  bool MergePartialFromCodedStream(
3196  ::google::protobuf::io::CodedInputStream* input);
3197  void SerializeWithCachedSizes(
3198  ::google::protobuf::io::CodedOutputStream* output) const;
3199  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
3200  int GetCachedSize() const { return _cached_size_; }
3201  private:
3202  void SharedCtor();
3203  void SharedDtor();
3204  void SetCachedSize(int size) const;
3205  public:
3206 
3207  ::google::protobuf::Metadata GetMetadata() const;
3208 
3209  // nested types ----------------------------------------------------
3210 
3211  // accessors -------------------------------------------------------
3212 
3213  // optional int32 channels = 1;
3214  inline bool has_channels() const;
3215  inline void clear_channels();
3216  static const int kChannelsFieldNumber = 1;
3217  inline ::google::protobuf::int32 channels() const;
3218  inline void set_channels(::google::protobuf::int32 value);
3219 
3220  // optional int32 height = 2;
3221  inline bool has_height() const;
3222  inline void clear_height();
3223  static const int kHeightFieldNumber = 2;
3224  inline ::google::protobuf::int32 height() const;
3225  inline void set_height(::google::protobuf::int32 value);
3226 
3227  // optional int32 width = 3;
3228  inline bool has_width() const;
3229  inline void clear_width();
3230  static const int kWidthFieldNumber = 3;
3231  inline ::google::protobuf::int32 width() const;
3232  inline void set_width(::google::protobuf::int32 value);
3233 
3234  // optional bytes data = 4;
3235  inline bool has_data() const;
3236  inline void clear_data();
3237  static const int kDataFieldNumber = 4;
3238  inline const ::std::string& data() const;
3239  inline void set_data(const ::std::string& value);
3240  inline void set_data(const char* value);
3241  inline void set_data(const void* value, size_t size);
3242  inline ::std::string* mutable_data();
3243  inline ::std::string* release_data();
3244  inline void set_allocated_data(::std::string* data);
3245 
3246  // optional int32 label = 5;
3247  inline bool has_label() const;
3248  inline void clear_label();
3249  static const int kLabelFieldNumber = 5;
3250  inline ::google::protobuf::int32 label() const;
3251  inline void set_label(::google::protobuf::int32 value);
3252 
3253  // repeated float float_data = 6;
3254  inline int float_data_size() const;
3255  inline void clear_float_data();
3256  static const int kFloatDataFieldNumber = 6;
3257  inline float float_data(int index) const;
3258  inline void set_float_data(int index, float value);
3259  inline void add_float_data(float value);
3260  inline const ::google::protobuf::RepeatedField< float >&
3261  float_data() const;
3262  inline ::google::protobuf::RepeatedField< float >*
3263  mutable_float_data();
3264 
3265  // optional bool encoded = 7 [default = false];
3266  inline bool has_encoded() const;
3267  inline void clear_encoded();
3268  static const int kEncodedFieldNumber = 7;
3269  inline bool encoded() const;
3270  inline void set_encoded(bool value);
3271 
3272  // @@protoc_insertion_point(class_scope:singa.Datum)
3273  private:
3274  inline void set_has_channels();
3275  inline void clear_has_channels();
3276  inline void set_has_height();
3277  inline void clear_has_height();
3278  inline void set_has_width();
3279  inline void clear_has_width();
3280  inline void set_has_data();
3281  inline void clear_has_data();
3282  inline void set_has_label();
3283  inline void clear_has_label();
3284  inline void set_has_encoded();
3285  inline void clear_has_encoded();
3286 
3287  ::google::protobuf::UnknownFieldSet _unknown_fields_;
3288 
3289  ::google::protobuf::int32 channels_;
3290  ::google::protobuf::int32 height_;
3291  ::std::string* data_;
3292  ::google::protobuf::int32 width_;
3293  ::google::protobuf::int32 label_;
3294  ::google::protobuf::RepeatedField< float > float_data_;
3295  bool encoded_;
3296 
3297  mutable int _cached_size_;
3298  ::google::protobuf::uint32 _has_bits_[(7 + 31) / 32];
3299 
3300  friend void protobuf_AddDesc_model_2eproto();
3301  friend void protobuf_AssignDesc_model_2eproto();
3302  friend void protobuf_ShutdownFile_model_2eproto();
3303 
3304  void InitAsDefaultInstance();
3305  static Datum* default_instance_;
3306 };
3307 // -------------------------------------------------------------------
3308 
3309 class SingleLabelImageRecord : public ::google::protobuf::Message {
3310  public:
3312  virtual ~SingleLabelImageRecord();
3313 
3315 
3316  inline SingleLabelImageRecord& operator=(const SingleLabelImageRecord& from) {
3317  CopyFrom(from);
3318  return *this;
3319  }
3320 
3321  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
3322  return _unknown_fields_;
3323  }
3324 
3325  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
3326  return &_unknown_fields_;
3327  }
3328 
3329  static const ::google::protobuf::Descriptor* descriptor();
3330  static const SingleLabelImageRecord& default_instance();
3331 
3332  void Swap(SingleLabelImageRecord* other);
3333 
3334  // implements Message ----------------------------------------------
3335 
3336  SingleLabelImageRecord* New() const;
3337  void CopyFrom(const ::google::protobuf::Message& from);
3338  void MergeFrom(const ::google::protobuf::Message& from);
3339  void CopyFrom(const SingleLabelImageRecord& from);
3340  void MergeFrom(const SingleLabelImageRecord& from);
3341  void Clear();
3342  bool IsInitialized() const;
3343 
3344  int ByteSize() const;
3345  bool MergePartialFromCodedStream(
3346  ::google::protobuf::io::CodedInputStream* input);
3347  void SerializeWithCachedSizes(
3348  ::google::protobuf::io::CodedOutputStream* output) const;
3349  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
3350  int GetCachedSize() const { return _cached_size_; }
3351  private:
3352  void SharedCtor();
3353  void SharedDtor();
3354  void SetCachedSize(int size) const;
3355  public:
3356 
3357  ::google::protobuf::Metadata GetMetadata() const;
3358 
3359  // nested types ----------------------------------------------------
3360 
3361  // accessors -------------------------------------------------------
3362 
3363  // repeated int32 shape = 1;
3364  inline int shape_size() const;
3365  inline void clear_shape();
3366  static const int kShapeFieldNumber = 1;
3367  inline ::google::protobuf::int32 shape(int index) const;
3368  inline void set_shape(int index, ::google::protobuf::int32 value);
3369  inline void add_shape(::google::protobuf::int32 value);
3370  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
3371  shape() const;
3372  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
3373  mutable_shape();
3374 
3375  // optional int32 label = 2;
3376  inline bool has_label() const;
3377  inline void clear_label();
3378  static const int kLabelFieldNumber = 2;
3379  inline ::google::protobuf::int32 label() const;
3380  inline void set_label(::google::protobuf::int32 value);
3381 
3382  // optional bytes pixel = 3;
3383  inline bool has_pixel() const;
3384  inline void clear_pixel();
3385  static const int kPixelFieldNumber = 3;
3386  inline const ::std::string& pixel() const;
3387  inline void set_pixel(const ::std::string& value);
3388  inline void set_pixel(const char* value);
3389  inline void set_pixel(const void* value, size_t size);
3390  inline ::std::string* mutable_pixel();
3391  inline ::std::string* release_pixel();
3392  inline void set_allocated_pixel(::std::string* pixel);
3393 
3394  // repeated float data = 4;
3395  inline int data_size() const;
3396  inline void clear_data();
3397  static const int kDataFieldNumber = 4;
3398  inline float data(int index) const;
3399  inline void set_data(int index, float value);
3400  inline void add_data(float value);
3401  inline const ::google::protobuf::RepeatedField< float >&
3402  data() const;
3403  inline ::google::protobuf::RepeatedField< float >*
3404  mutable_data();
3405 
3406  // @@protoc_insertion_point(class_scope:singa.SingleLabelImageRecord)
3407  private:
3408  inline void set_has_label();
3409  inline void clear_has_label();
3410  inline void set_has_pixel();
3411  inline void clear_has_pixel();
3412 
3413  ::google::protobuf::UnknownFieldSet _unknown_fields_;
3414 
3415  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > shape_;
3416  ::std::string* pixel_;
3417  ::google::protobuf::RepeatedField< float > data_;
3418  ::google::protobuf::int32 label_;
3419 
3420  mutable int _cached_size_;
3421  ::google::protobuf::uint32 _has_bits_[(4 + 31) / 32];
3422 
3423  friend void protobuf_AddDesc_model_2eproto();
3424  friend void protobuf_AssignDesc_model_2eproto();
3425  friend void protobuf_ShutdownFile_model_2eproto();
3426 
3427  void InitAsDefaultInstance();
3428  static SingleLabelImageRecord* default_instance_;
3429 };
3430 // -------------------------------------------------------------------
3431 
3432 class UpdaterProto : public ::google::protobuf::Message {
3433  public:
3434  UpdaterProto();
3435  virtual ~UpdaterProto();
3436 
3437  UpdaterProto(const UpdaterProto& from);
3438 
3439  inline UpdaterProto& operator=(const UpdaterProto& from) {
3440  CopyFrom(from);
3441  return *this;
3442  }
3443 
3444  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
3445  return _unknown_fields_;
3446  }
3447 
3448  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
3449  return &_unknown_fields_;
3450  }
3451 
3452  static const ::google::protobuf::Descriptor* descriptor();
3453  static const UpdaterProto& default_instance();
3454 
3455  void Swap(UpdaterProto* other);
3456 
3457  // implements Message ----------------------------------------------
3458 
3459  UpdaterProto* New() const;
3460  void CopyFrom(const ::google::protobuf::Message& from);
3461  void MergeFrom(const ::google::protobuf::Message& from);
3462  void CopyFrom(const UpdaterProto& from);
3463  void MergeFrom(const UpdaterProto& from);
3464  void Clear();
3465  bool IsInitialized() const;
3466 
3467  int ByteSize() const;
3468  bool MergePartialFromCodedStream(
3469  ::google::protobuf::io::CodedInputStream* input);
3470  void SerializeWithCachedSizes(
3471  ::google::protobuf::io::CodedOutputStream* output) const;
3472  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
3473  int GetCachedSize() const { return _cached_size_; }
3474  private:
3475  void SharedCtor();
3476  void SharedDtor();
3477  void SetCachedSize(int size) const;
3478  public:
3479 
3480  ::google::protobuf::Metadata GetMetadata() const;
3481 
3482  // nested types ----------------------------------------------------
3483 
3484  typedef UpdaterProto_ChangeProto ChangeProto;
3485  static const ChangeProto kFixed = UpdaterProto_ChangeProto_kFixed;
3486  static const ChangeProto kInverse_t = UpdaterProto_ChangeProto_kInverse_t;
3487  static const ChangeProto kInverse = UpdaterProto_ChangeProto_kInverse;
3488  static const ChangeProto kExponential = UpdaterProto_ChangeProto_kExponential;
3489  static const ChangeProto kLinear = UpdaterProto_ChangeProto_kLinear;
3490  static const ChangeProto kStep = UpdaterProto_ChangeProto_kStep;
3491  static const ChangeProto kFixedStep = UpdaterProto_ChangeProto_kFixedStep;
3492  static inline bool ChangeProto_IsValid(int value) {
3493  return UpdaterProto_ChangeProto_IsValid(value);
3494  }
3495  static const ChangeProto ChangeProto_MIN =
3496  UpdaterProto_ChangeProto_ChangeProto_MIN;
3497  static const ChangeProto ChangeProto_MAX =
3498  UpdaterProto_ChangeProto_ChangeProto_MAX;
3499  static const int ChangeProto_ARRAYSIZE =
3500  UpdaterProto_ChangeProto_ChangeProto_ARRAYSIZE;
3501  static inline const ::google::protobuf::EnumDescriptor*
3502  ChangeProto_descriptor() {
3503  return UpdaterProto_ChangeProto_descriptor();
3504  }
3505  static inline const ::std::string& ChangeProto_Name(ChangeProto value) {
3506  return UpdaterProto_ChangeProto_Name(value);
3507  }
3508  static inline bool ChangeProto_Parse(const ::std::string& name,
3509  ChangeProto* value) {
3510  return UpdaterProto_ChangeProto_Parse(name, value);
3511  }
3512 
3513  // accessors -------------------------------------------------------
3514 
3515  // optional float momentum = 4 [default = 0];
3516  inline bool has_momentum() const;
3517  inline void clear_momentum();
3518  static const int kMomentumFieldNumber = 4;
3519  inline float momentum() const;
3520  inline void set_momentum(float value);
3521 
3522  // optional float weight_decay = 5 [default = 0];
3523  inline bool has_weight_decay() const;
3524  inline void clear_weight_decay();
3525  static const int kWeightDecayFieldNumber = 5;
3526  inline float weight_decay() const;
3527  inline void set_weight_decay(float value);
3528 
3529  // optional float gamma = 6 [default = 1];
3530  inline bool has_gamma() const;
3531  inline void clear_gamma();
3532  static const int kGammaFieldNumber = 6;
3533  inline float gamma() const;
3534  inline void set_gamma(float value);
3535 
3536  // optional float pow = 7 [default = 0];
3537  inline bool has_pow() const;
3538  inline void clear_pow();
3539  static const int kPowFieldNumber = 7;
3540  inline float pow() const;
3541  inline void set_pow(float value);
3542 
3543  // optional float delta = 8 [default = 1e-07];
3544  inline bool has_delta() const;
3545  inline void clear_delta();
3546  static const int kDeltaFieldNumber = 8;
3547  inline float delta() const;
3548  inline void set_delta(float value);
3549 
3550  // optional float rho = 9 [default = 0.9];
3551  inline bool has_rho() const;
3552  inline void clear_rho();
3553  static const int kRhoFieldNumber = 9;
3554  inline float rho() const;
3555  inline void set_rho(float value);
3556 
3557  // optional float base_learning_rate = 12;
3558  inline bool has_base_learning_rate() const;
3559  inline void clear_base_learning_rate();
3560  static const int kBaseLearningRateFieldNumber = 12;
3561  inline float base_learning_rate() const;
3562  inline void set_base_learning_rate(float value);
3563 
3564  // optional float final_learning_rate = 13;
3565  inline bool has_final_learning_rate() const;
3566  inline void clear_final_learning_rate();
3567  static const int kFinalLearningRateFieldNumber = 13;
3568  inline float final_learning_rate() const;
3569  inline void set_final_learning_rate(float value);
3570 
3571  // optional int32 learning_rate_change_frequency = 14;
3572  inline bool has_learning_rate_change_frequency() const;
3573  inline void clear_learning_rate_change_frequency();
3574  static const int kLearningRateChangeFrequencyFieldNumber = 14;
3575  inline ::google::protobuf::int32 learning_rate_change_frequency() const;
3576  inline void set_learning_rate_change_frequency(::google::protobuf::int32 value);
3577 
3578  // optional .singa.UpdaterProto.ChangeProto learning_rate_change_method = 16 [default = kFixed];
3579  inline bool has_learning_rate_change_method() const;
3580  inline void clear_learning_rate_change_method();
3581  static const int kLearningRateChangeMethodFieldNumber = 16;
3582  inline ::singa::UpdaterProto_ChangeProto learning_rate_change_method() const;
3583  inline void set_learning_rate_change_method(::singa::UpdaterProto_ChangeProto value);
3584 
3585  // optional int32 sync_frequency = 17 [default = 1];
3586  inline bool has_sync_frequency() const;
3587  inline void clear_sync_frequency();
3588  static const int kSyncFrequencyFieldNumber = 17;
3589  inline ::google::protobuf::int32 sync_frequency() const;
3590  inline void set_sync_frequency(::google::protobuf::int32 value);
3591 
3592  // optional float moving_rate = 26 [default = 0];
3593  inline bool has_moving_rate() const;
3594  inline void clear_moving_rate();
3595  static const int kMovingRateFieldNumber = 26;
3596  inline float moving_rate() const;
3597  inline void set_moving_rate(float value);
3598 
3599  // optional string param_type = 27 [default = "Param"];
3600  inline bool has_param_type() const;
3601  inline void clear_param_type();
3602  static const int kParamTypeFieldNumber = 27;
3603  inline const ::std::string& param_type() const;
3604  inline void set_param_type(const ::std::string& value);
3605  inline void set_param_type(const char* value);
3606  inline void set_param_type(const char* value, size_t size);
3607  inline ::std::string* mutable_param_type();
3608  inline ::std::string* release_param_type();
3609  inline void set_allocated_param_type(::std::string* param_type);
3610 
3611  // repeated int32 step = 28;
3612  inline int step_size() const;
3613  inline void clear_step();
3614  static const int kStepFieldNumber = 28;
3615  inline ::google::protobuf::int32 step(int index) const;
3616  inline void set_step(int index, ::google::protobuf::int32 value);
3617  inline void add_step(::google::protobuf::int32 value);
3618  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
3619  step() const;
3620  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
3621  mutable_step();
3622 
3623  // repeated float step_lr = 29;
3624  inline int step_lr_size() const;
3625  inline void clear_step_lr();
3626  static const int kStepLrFieldNumber = 29;
3627  inline float step_lr(int index) const;
3628  inline void set_step_lr(int index, float value);
3629  inline void add_step_lr(float value);
3630  inline const ::google::protobuf::RepeatedField< float >&
3631  step_lr() const;
3632  inline ::google::protobuf::RepeatedField< float >*
3633  mutable_step_lr();
3634 
3635  // @@protoc_insertion_point(class_scope:singa.UpdaterProto)
3636  private:
3637  inline void set_has_momentum();
3638  inline void clear_has_momentum();
3639  inline void set_has_weight_decay();
3640  inline void clear_has_weight_decay();
3641  inline void set_has_gamma();
3642  inline void clear_has_gamma();
3643  inline void set_has_pow();
3644  inline void clear_has_pow();
3645  inline void set_has_delta();
3646  inline void clear_has_delta();
3647  inline void set_has_rho();
3648  inline void clear_has_rho();
3649  inline void set_has_base_learning_rate();
3650  inline void clear_has_base_learning_rate();
3651  inline void set_has_final_learning_rate();
3652  inline void clear_has_final_learning_rate();
3653  inline void set_has_learning_rate_change_frequency();
3654  inline void clear_has_learning_rate_change_frequency();
3655  inline void set_has_learning_rate_change_method();
3656  inline void clear_has_learning_rate_change_method();
3657  inline void set_has_sync_frequency();
3658  inline void clear_has_sync_frequency();
3659  inline void set_has_moving_rate();
3660  inline void clear_has_moving_rate();
3661  inline void set_has_param_type();
3662  inline void clear_has_param_type();
3663 
3664  ::google::protobuf::UnknownFieldSet _unknown_fields_;
3665 
3666  float momentum_;
3667  float weight_decay_;
3668  float gamma_;
3669  float pow_;
3670  float delta_;
3671  float rho_;
3672  float base_learning_rate_;
3673  float final_learning_rate_;
3674  ::google::protobuf::int32 learning_rate_change_frequency_;
3675  int learning_rate_change_method_;
3676  ::google::protobuf::int32 sync_frequency_;
3677  float moving_rate_;
3678  ::std::string* param_type_;
3679  static ::std::string* _default_param_type_;
3680  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > step_;
3681  ::google::protobuf::RepeatedField< float > step_lr_;
3682 
3683  mutable int _cached_size_;
3684  ::google::protobuf::uint32 _has_bits_[(15 + 31) / 32];
3685 
3686  friend void protobuf_AddDesc_model_2eproto();
3687  friend void protobuf_AssignDesc_model_2eproto();
3688  friend void protobuf_ShutdownFile_model_2eproto();
3689 
3690  void InitAsDefaultInstance();
3691  static UpdaterProto* default_instance_;
3692 };
3693 // -------------------------------------------------------------------
3694 
3695 class BlobProto : public ::google::protobuf::Message {
3696  public:
3697  BlobProto();
3698  virtual ~BlobProto();
3699 
3700  BlobProto(const BlobProto& from);
3701 
3702  inline BlobProto& operator=(const BlobProto& from) {
3703  CopyFrom(from);
3704  return *this;
3705  }
3706 
3707  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
3708  return _unknown_fields_;
3709  }
3710 
3711  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
3712  return &_unknown_fields_;
3713  }
3714 
3715  static const ::google::protobuf::Descriptor* descriptor();
3716  static const BlobProto& default_instance();
3717 
3718  void Swap(BlobProto* other);
3719 
3720  // implements Message ----------------------------------------------
3721 
3722  BlobProto* New() const;
3723  void CopyFrom(const ::google::protobuf::Message& from);
3724  void MergeFrom(const ::google::protobuf::Message& from);
3725  void CopyFrom(const BlobProto& from);
3726  void MergeFrom(const BlobProto& from);
3727  void Clear();
3728  bool IsInitialized() const;
3729 
3730  int ByteSize() const;
3731  bool MergePartialFromCodedStream(
3732  ::google::protobuf::io::CodedInputStream* input);
3733  void SerializeWithCachedSizes(
3734  ::google::protobuf::io::CodedOutputStream* output) const;
3735  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
3736  int GetCachedSize() const { return _cached_size_; }
3737  private:
3738  void SharedCtor();
3739  void SharedDtor();
3740  void SetCachedSize(int size) const;
3741  public:
3742 
3743  ::google::protobuf::Metadata GetMetadata() const;
3744 
3745  // nested types ----------------------------------------------------
3746 
3747  // accessors -------------------------------------------------------
3748 
3749  // optional int32 num = 1 [default = 0];
3750  inline bool has_num() const;
3751  inline void clear_num();
3752  static const int kNumFieldNumber = 1;
3753  inline ::google::protobuf::int32 num() const;
3754  inline void set_num(::google::protobuf::int32 value);
3755 
3756  // optional int32 channels = 2 [default = 0];
3757  inline bool has_channels() const;
3758  inline void clear_channels();
3759  static const int kChannelsFieldNumber = 2;
3760  inline ::google::protobuf::int32 channels() const;
3761  inline void set_channels(::google::protobuf::int32 value);
3762 
3763  // optional int32 height = 3 [default = 0];
3764  inline bool has_height() const;
3765  inline void clear_height();
3766  static const int kHeightFieldNumber = 3;
3767  inline ::google::protobuf::int32 height() const;
3768  inline void set_height(::google::protobuf::int32 value);
3769 
3770  // optional int32 width = 4 [default = 0];
3771  inline bool has_width() const;
3772  inline void clear_width();
3773  static const int kWidthFieldNumber = 4;
3774  inline ::google::protobuf::int32 width() const;
3775  inline void set_width(::google::protobuf::int32 value);
3776 
3777  // repeated float data = 5 [packed = true];
3778  inline int data_size() const;
3779  inline void clear_data();
3780  static const int kDataFieldNumber = 5;
3781  inline float data(int index) const;
3782  inline void set_data(int index, float value);
3783  inline void add_data(float value);
3784  inline const ::google::protobuf::RepeatedField< float >&
3785  data() const;
3786  inline ::google::protobuf::RepeatedField< float >*
3787  mutable_data();
3788 
3789  // repeated float diff = 6 [packed = true];
3790  inline int diff_size() const;
3791  inline void clear_diff();
3792  static const int kDiffFieldNumber = 6;
3793  inline float diff(int index) const;
3794  inline void set_diff(int index, float value);
3795  inline void add_diff(float value);
3796  inline const ::google::protobuf::RepeatedField< float >&
3797  diff() const;
3798  inline ::google::protobuf::RepeatedField< float >*
3799  mutable_diff();
3800 
3801  // @@protoc_insertion_point(class_scope:singa.BlobProto)
3802  private:
3803  inline void set_has_num();
3804  inline void clear_has_num();
3805  inline void set_has_channels();
3806  inline void clear_has_channels();
3807  inline void set_has_height();
3808  inline void clear_has_height();
3809  inline void set_has_width();
3810  inline void clear_has_width();
3811 
3812  ::google::protobuf::UnknownFieldSet _unknown_fields_;
3813 
3814  ::google::protobuf::int32 num_;
3815  ::google::protobuf::int32 channels_;
3816  ::google::protobuf::int32 height_;
3817  ::google::protobuf::int32 width_;
3818  ::google::protobuf::RepeatedField< float > data_;
3819  mutable int _data_cached_byte_size_;
3820  ::google::protobuf::RepeatedField< float > diff_;
3821  mutable int _diff_cached_byte_size_;
3822 
3823  mutable int _cached_size_;
3824  ::google::protobuf::uint32 _has_bits_[(6 + 31) / 32];
3825 
3826  friend void protobuf_AddDesc_model_2eproto();
3827  friend void protobuf_AssignDesc_model_2eproto();
3828  friend void protobuf_ShutdownFile_model_2eproto();
3829 
3830  void InitAsDefaultInstance();
3831  static BlobProto* default_instance_;
3832 };
3833 // ===================================================================
3834 
3835 
3836 // ===================================================================
3837 
3838 // ModelProto
3839 
3840 // optional string name = 1;
3841 inline bool ModelProto::has_name() const {
3842  return (_has_bits_[0] & 0x00000001u) != 0;
3843 }
3844 inline void ModelProto::set_has_name() {
3845  _has_bits_[0] |= 0x00000001u;
3846 }
3847 inline void ModelProto::clear_has_name() {
3848  _has_bits_[0] &= ~0x00000001u;
3849 }
3850 inline void ModelProto::clear_name() {
3851  if (name_ != &::google::protobuf::internal::kEmptyString) {
3852  name_->clear();
3853  }
3854  clear_has_name();
3855 }
3856 inline const ::std::string& ModelProto::name() const {
3857  return *name_;
3858 }
3859 inline void ModelProto::set_name(const ::std::string& value) {
3860  set_has_name();
3861  if (name_ == &::google::protobuf::internal::kEmptyString) {
3862  name_ = new ::std::string;
3863  }
3864  name_->assign(value);
3865 }
3866 inline void ModelProto::set_name(const char* value) {
3867  set_has_name();
3868  if (name_ == &::google::protobuf::internal::kEmptyString) {
3869  name_ = new ::std::string;
3870  }
3871  name_->assign(value);
3872 }
3873 inline void ModelProto::set_name(const char* value, size_t size) {
3874  set_has_name();
3875  if (name_ == &::google::protobuf::internal::kEmptyString) {
3876  name_ = new ::std::string;
3877  }
3878  name_->assign(reinterpret_cast<const char*>(value), size);
3879 }
3880 inline ::std::string* ModelProto::mutable_name() {
3881  set_has_name();
3882  if (name_ == &::google::protobuf::internal::kEmptyString) {
3883  name_ = new ::std::string;
3884  }
3885  return name_;
3886 }
3887 inline ::std::string* ModelProto::release_name() {
3888  clear_has_name();
3889  if (name_ == &::google::protobuf::internal::kEmptyString) {
3890  return NULL;
3891  } else {
3892  ::std::string* temp = name_;
3893  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
3894  return temp;
3895  }
3896 }
3897 inline void ModelProto::set_allocated_name(::std::string* name) {
3898  if (name_ != &::google::protobuf::internal::kEmptyString) {
3899  delete name_;
3900  }
3901  if (name) {
3902  set_has_name();
3903  name_ = name;
3904  } else {
3905  clear_has_name();
3906  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
3907  }
3908 }
3909 
3910 // optional string train_folder = 2 [default = "train"];
3911 inline bool ModelProto::has_train_folder() const {
3912  return (_has_bits_[0] & 0x00000002u) != 0;
3913 }
3914 inline void ModelProto::set_has_train_folder() {
3915  _has_bits_[0] |= 0x00000002u;
3916 }
3917 inline void ModelProto::clear_has_train_folder() {
3918  _has_bits_[0] &= ~0x00000002u;
3919 }
3920 inline void ModelProto::clear_train_folder() {
3921  if (train_folder_ != _default_train_folder_) {
3922  train_folder_->assign(*_default_train_folder_);
3923  }
3924  clear_has_train_folder();
3925 }
3926 inline const ::std::string& ModelProto::train_folder() const {
3927  return *train_folder_;
3928 }
3929 inline void ModelProto::set_train_folder(const ::std::string& value) {
3930  set_has_train_folder();
3931  if (train_folder_ == _default_train_folder_) {
3932  train_folder_ = new ::std::string;
3933  }
3934  train_folder_->assign(value);
3935 }
3936 inline void ModelProto::set_train_folder(const char* value) {
3937  set_has_train_folder();
3938  if (train_folder_ == _default_train_folder_) {
3939  train_folder_ = new ::std::string;
3940  }
3941  train_folder_->assign(value);
3942 }
3943 inline void ModelProto::set_train_folder(const char* value, size_t size) {
3944  set_has_train_folder();
3945  if (train_folder_ == _default_train_folder_) {
3946  train_folder_ = new ::std::string;
3947  }
3948  train_folder_->assign(reinterpret_cast<const char*>(value), size);
3949 }
3950 inline ::std::string* ModelProto::mutable_train_folder() {
3951  set_has_train_folder();
3952  if (train_folder_ == _default_train_folder_) {
3953  train_folder_ = new ::std::string(*_default_train_folder_);
3954  }
3955  return train_folder_;
3956 }
3957 inline ::std::string* ModelProto::release_train_folder() {
3958  clear_has_train_folder();
3959  if (train_folder_ == _default_train_folder_) {
3960  return NULL;
3961  } else {
3962  ::std::string* temp = train_folder_;
3963  train_folder_ = const_cast< ::std::string*>(_default_train_folder_);
3964  return temp;
3965  }
3966 }
3967 inline void ModelProto::set_allocated_train_folder(::std::string* train_folder) {
3968  if (train_folder_ != _default_train_folder_) {
3969  delete train_folder_;
3970  }
3971  if (train_folder) {
3972  set_has_train_folder();
3973  train_folder_ = train_folder;
3974  } else {
3975  clear_has_train_folder();
3976  train_folder_ = const_cast< ::std::string*>(_default_train_folder_);
3977  }
3978 }
3979 
3980 // optional string test_folder = 3 [default = "test"];
3981 inline bool ModelProto::has_test_folder() const {
3982  return (_has_bits_[0] & 0x00000004u) != 0;
3983 }
3984 inline void ModelProto::set_has_test_folder() {
3985  _has_bits_[0] |= 0x00000004u;
3986 }
3987 inline void ModelProto::clear_has_test_folder() {
3988  _has_bits_[0] &= ~0x00000004u;
3989 }
3990 inline void ModelProto::clear_test_folder() {
3991  if (test_folder_ != _default_test_folder_) {
3992  test_folder_->assign(*_default_test_folder_);
3993  }
3994  clear_has_test_folder();
3995 }
3996 inline const ::std::string& ModelProto::test_folder() const {
3997  return *test_folder_;
3998 }
3999 inline void ModelProto::set_test_folder(const ::std::string& value) {
4000  set_has_test_folder();
4001  if (test_folder_ == _default_test_folder_) {
4002  test_folder_ = new ::std::string;
4003  }
4004  test_folder_->assign(value);
4005 }
4006 inline void ModelProto::set_test_folder(const char* value) {
4007  set_has_test_folder();
4008  if (test_folder_ == _default_test_folder_) {
4009  test_folder_ = new ::std::string;
4010  }
4011  test_folder_->assign(value);
4012 }
4013 inline void ModelProto::set_test_folder(const char* value, size_t size) {
4014  set_has_test_folder();
4015  if (test_folder_ == _default_test_folder_) {
4016  test_folder_ = new ::std::string;
4017  }
4018  test_folder_->assign(reinterpret_cast<const char*>(value), size);
4019 }
4020 inline ::std::string* ModelProto::mutable_test_folder() {
4021  set_has_test_folder();
4022  if (test_folder_ == _default_test_folder_) {
4023  test_folder_ = new ::std::string(*_default_test_folder_);
4024  }
4025  return test_folder_;
4026 }
4027 inline ::std::string* ModelProto::release_test_folder() {
4028  clear_has_test_folder();
4029  if (test_folder_ == _default_test_folder_) {
4030  return NULL;
4031  } else {
4032  ::std::string* temp = test_folder_;
4033  test_folder_ = const_cast< ::std::string*>(_default_test_folder_);
4034  return temp;
4035  }
4036 }
4037 inline void ModelProto::set_allocated_test_folder(::std::string* test_folder) {
4038  if (test_folder_ != _default_test_folder_) {
4039  delete test_folder_;
4040  }
4041  if (test_folder) {
4042  set_has_test_folder();
4043  test_folder_ = test_folder;
4044  } else {
4045  clear_has_test_folder();
4046  test_folder_ = const_cast< ::std::string*>(_default_test_folder_);
4047  }
4048 }
4049 
4050 // optional string validation_folder = 4 [default = "validation"];
4051 inline bool ModelProto::has_validation_folder() const {
4052  return (_has_bits_[0] & 0x00000008u) != 0;
4053 }
4054 inline void ModelProto::set_has_validation_folder() {
4055  _has_bits_[0] |= 0x00000008u;
4056 }
4057 inline void ModelProto::clear_has_validation_folder() {
4058  _has_bits_[0] &= ~0x00000008u;
4059 }
4060 inline void ModelProto::clear_validation_folder() {
4061  if (validation_folder_ != _default_validation_folder_) {
4062  validation_folder_->assign(*_default_validation_folder_);
4063  }
4064  clear_has_validation_folder();
4065 }
4066 inline const ::std::string& ModelProto::validation_folder() const {
4067  return *validation_folder_;
4068 }
4069 inline void ModelProto::set_validation_folder(const ::std::string& value) {
4070  set_has_validation_folder();
4071  if (validation_folder_ == _default_validation_folder_) {
4072  validation_folder_ = new ::std::string;
4073  }
4074  validation_folder_->assign(value);
4075 }
4076 inline void ModelProto::set_validation_folder(const char* value) {
4077  set_has_validation_folder();
4078  if (validation_folder_ == _default_validation_folder_) {
4079  validation_folder_ = new ::std::string;
4080  }
4081  validation_folder_->assign(value);
4082 }
4083 inline void ModelProto::set_validation_folder(const char* value, size_t size) {
4084  set_has_validation_folder();
4085  if (validation_folder_ == _default_validation_folder_) {
4086  validation_folder_ = new ::std::string;
4087  }
4088  validation_folder_->assign(reinterpret_cast<const char*>(value), size);
4089 }
4090 inline ::std::string* ModelProto::mutable_validation_folder() {
4091  set_has_validation_folder();
4092  if (validation_folder_ == _default_validation_folder_) {
4093  validation_folder_ = new ::std::string(*_default_validation_folder_);
4094  }
4095  return validation_folder_;
4096 }
4097 inline ::std::string* ModelProto::release_validation_folder() {
4098  clear_has_validation_folder();
4099  if (validation_folder_ == _default_validation_folder_) {
4100  return NULL;
4101  } else {
4102  ::std::string* temp = validation_folder_;
4103  validation_folder_ = const_cast< ::std::string*>(_default_validation_folder_);
4104  return temp;
4105  }
4106 }
4107 inline void ModelProto::set_allocated_validation_folder(::std::string* validation_folder) {
4108  if (validation_folder_ != _default_validation_folder_) {
4109  delete validation_folder_;
4110  }
4111  if (validation_folder) {
4112  set_has_validation_folder();
4113  validation_folder_ = validation_folder;
4114  } else {
4115  clear_has_validation_folder();
4116  validation_folder_ = const_cast< ::std::string*>(_default_validation_folder_);
4117  }
4118 }
4119 
4120 // optional int32 display_after_steps = 6 [default = 0];
4121 inline bool ModelProto::has_display_after_steps() const {
4122  return (_has_bits_[0] & 0x00000010u) != 0;
4123 }
4124 inline void ModelProto::set_has_display_after_steps() {
4125  _has_bits_[0] |= 0x00000010u;
4126 }
4127 inline void ModelProto::clear_has_display_after_steps() {
4128  _has_bits_[0] &= ~0x00000010u;
4129 }
4130 inline void ModelProto::clear_display_after_steps() {
4131  display_after_steps_ = 0;
4132  clear_has_display_after_steps();
4133 }
4134 inline ::google::protobuf::int32 ModelProto::display_after_steps() const {
4135  return display_after_steps_;
4136 }
4137 inline void ModelProto::set_display_after_steps(::google::protobuf::int32 value) {
4138  set_has_display_after_steps();
4139  display_after_steps_ = value;
4140 }
4141 
4142 // optional int32 display_frequency = 7 [default = 0];
4143 inline bool ModelProto::has_display_frequency() const {
4144  return (_has_bits_[0] & 0x00000020u) != 0;
4145 }
4146 inline void ModelProto::set_has_display_frequency() {
4147  _has_bits_[0] |= 0x00000020u;
4148 }
4149 inline void ModelProto::clear_has_display_frequency() {
4150  _has_bits_[0] &= ~0x00000020u;
4151 }
4152 inline void ModelProto::clear_display_frequency() {
4153  display_frequency_ = 0;
4154  clear_has_display_frequency();
4155 }
4156 inline ::google::protobuf::int32 ModelProto::display_frequency() const {
4157  return display_frequency_;
4158 }
4159 inline void ModelProto::set_display_frequency(::google::protobuf::int32 value) {
4160  set_has_display_frequency();
4161  display_frequency_ = value;
4162 }
4163 
4164 // optional int32 validation_after_steps = 10 [default = 0];
4165 inline bool ModelProto::has_validation_after_steps() const {
4166  return (_has_bits_[0] & 0x00000040u) != 0;
4167 }
4168 inline void ModelProto::set_has_validation_after_steps() {
4169  _has_bits_[0] |= 0x00000040u;
4170 }
4171 inline void ModelProto::clear_has_validation_after_steps() {
4172  _has_bits_[0] &= ~0x00000040u;
4173 }
4174 inline void ModelProto::clear_validation_after_steps() {
4175  validation_after_steps_ = 0;
4176  clear_has_validation_after_steps();
4177 }
4178 inline ::google::protobuf::int32 ModelProto::validation_after_steps() const {
4179  return validation_after_steps_;
4180 }
4181 inline void ModelProto::set_validation_after_steps(::google::protobuf::int32 value) {
4182  set_has_validation_after_steps();
4183  validation_after_steps_ = value;
4184 }
4185 
4186 // optional int32 validation_frequency = 11 [default = 0];
4187 inline bool ModelProto::has_validation_frequency() const {
4188  return (_has_bits_[0] & 0x00000080u) != 0;
4189 }
4190 inline void ModelProto::set_has_validation_frequency() {
4191  _has_bits_[0] |= 0x00000080u;
4192 }
4193 inline void ModelProto::clear_has_validation_frequency() {
4194  _has_bits_[0] &= ~0x00000080u;
4195 }
4196 inline void ModelProto::clear_validation_frequency() {
4197  validation_frequency_ = 0;
4198  clear_has_validation_frequency();
4199 }
4200 inline ::google::protobuf::int32 ModelProto::validation_frequency() const {
4201  return validation_frequency_;
4202 }
4203 inline void ModelProto::set_validation_frequency(::google::protobuf::int32 value) {
4204  set_has_validation_frequency();
4205  validation_frequency_ = value;
4206 }
4207 
4208 // optional int32 test_after_steps = 13 [default = 0];
4209 inline bool ModelProto::has_test_after_steps() const {
4210  return (_has_bits_[0] & 0x00000100u) != 0;
4211 }
4212 inline void ModelProto::set_has_test_after_steps() {
4213  _has_bits_[0] |= 0x00000100u;
4214 }
4215 inline void ModelProto::clear_has_test_after_steps() {
4216  _has_bits_[0] &= ~0x00000100u;
4217 }
4218 inline void ModelProto::clear_test_after_steps() {
4219  test_after_steps_ = 0;
4220  clear_has_test_after_steps();
4221 }
4222 inline ::google::protobuf::int32 ModelProto::test_after_steps() const {
4223  return test_after_steps_;
4224 }
4225 inline void ModelProto::set_test_after_steps(::google::protobuf::int32 value) {
4226  set_has_test_after_steps();
4227  test_after_steps_ = value;
4228 }
4229 
4230 // optional int32 test_frequency = 14 [default = 0];
4231 inline bool ModelProto::has_test_frequency() const {
4232  return (_has_bits_[0] & 0x00000200u) != 0;
4233 }
4234 inline void ModelProto::set_has_test_frequency() {
4235  _has_bits_[0] |= 0x00000200u;
4236 }
4237 inline void ModelProto::clear_has_test_frequency() {
4238  _has_bits_[0] &= ~0x00000200u;
4239 }
4240 inline void ModelProto::clear_test_frequency() {
4241  test_frequency_ = 0;
4242  clear_has_test_frequency();
4243 }
4244 inline ::google::protobuf::int32 ModelProto::test_frequency() const {
4245  return test_frequency_;
4246 }
4247 inline void ModelProto::set_test_frequency(::google::protobuf::int32 value) {
4248  set_has_test_frequency();
4249  test_frequency_ = value;
4250 }
4251 
4252 // optional int32 checkpoint_after_steps = 15 [default = 0];
4253 inline bool ModelProto::has_checkpoint_after_steps() const {
4254  return (_has_bits_[0] & 0x00000400u) != 0;
4255 }
4256 inline void ModelProto::set_has_checkpoint_after_steps() {
4257  _has_bits_[0] |= 0x00000400u;
4258 }
4259 inline void ModelProto::clear_has_checkpoint_after_steps() {
4260  _has_bits_[0] &= ~0x00000400u;
4261 }
4262 inline void ModelProto::clear_checkpoint_after_steps() {
4263  checkpoint_after_steps_ = 0;
4264  clear_has_checkpoint_after_steps();
4265 }
4266 inline ::google::protobuf::int32 ModelProto::checkpoint_after_steps() const {
4267  return checkpoint_after_steps_;
4268 }
4269 inline void ModelProto::set_checkpoint_after_steps(::google::protobuf::int32 value) {
4270  set_has_checkpoint_after_steps();
4271  checkpoint_after_steps_ = value;
4272 }
4273 
4274 // optional int32 checkpoint_frequency = 16 [default = 0];
4275 inline bool ModelProto::has_checkpoint_frequency() const {
4276  return (_has_bits_[0] & 0x00000800u) != 0;
4277 }
4278 inline void ModelProto::set_has_checkpoint_frequency() {
4279  _has_bits_[0] |= 0x00000800u;
4280 }
4281 inline void ModelProto::clear_has_checkpoint_frequency() {
4282  _has_bits_[0] &= ~0x00000800u;
4283 }
4284 inline void ModelProto::clear_checkpoint_frequency() {
4285  checkpoint_frequency_ = 0;
4286  clear_has_checkpoint_frequency();
4287 }
4288 inline ::google::protobuf::int32 ModelProto::checkpoint_frequency() const {
4289  return checkpoint_frequency_;
4290 }
4291 inline void ModelProto::set_checkpoint_frequency(::google::protobuf::int32 value) {
4292  set_has_checkpoint_frequency();
4293  checkpoint_frequency_ = value;
4294 }
4295 
4296 // optional bool prefetch = 18 [default = true];
4297 inline bool ModelProto::has_prefetch() const {
4298  return (_has_bits_[0] & 0x00001000u) != 0;
4299 }
4300 inline void ModelProto::set_has_prefetch() {
4301  _has_bits_[0] |= 0x00001000u;
4302 }
4303 inline void ModelProto::clear_has_prefetch() {
4304  _has_bits_[0] &= ~0x00001000u;
4305 }
4306 inline void ModelProto::clear_prefetch() {
4307  prefetch_ = true;
4308  clear_has_prefetch();
4309 }
4310 inline bool ModelProto::prefetch() const {
4311  return prefetch_;
4312 }
4313 inline void ModelProto::set_prefetch(bool value) {
4314  set_has_prefetch();
4315  prefetch_ = value;
4316 }
4317 
4318 // optional int32 train_steps = 20;
4319 inline bool ModelProto::has_train_steps() const {
4320  return (_has_bits_[0] & 0x00002000u) != 0;
4321 }
4322 inline void ModelProto::set_has_train_steps() {
4323  _has_bits_[0] |= 0x00002000u;
4324 }
4325 inline void ModelProto::clear_has_train_steps() {
4326  _has_bits_[0] &= ~0x00002000u;
4327 }
4328 inline void ModelProto::clear_train_steps() {
4329  train_steps_ = 0;
4330  clear_has_train_steps();
4331 }
4332 inline ::google::protobuf::int32 ModelProto::train_steps() const {
4333  return train_steps_;
4334 }
4335 inline void ModelProto::set_train_steps(::google::protobuf::int32 value) {
4336  set_has_train_steps();
4337  train_steps_ = value;
4338 }
4339 
4340 // optional int32 validation_steps = 21;
4341 inline bool ModelProto::has_validation_steps() const {
4342  return (_has_bits_[0] & 0x00004000u) != 0;
4343 }
4344 inline void ModelProto::set_has_validation_steps() {
4345  _has_bits_[0] |= 0x00004000u;
4346 }
4347 inline void ModelProto::clear_has_validation_steps() {
4348  _has_bits_[0] &= ~0x00004000u;
4349 }
4350 inline void ModelProto::clear_validation_steps() {
4351  validation_steps_ = 0;
4352  clear_has_validation_steps();
4353 }
4354 inline ::google::protobuf::int32 ModelProto::validation_steps() const {
4355  return validation_steps_;
4356 }
4357 inline void ModelProto::set_validation_steps(::google::protobuf::int32 value) {
4358  set_has_validation_steps();
4359  validation_steps_ = value;
4360 }
4361 
4362 // optional int32 test_steps = 22;
4363 inline bool ModelProto::has_test_steps() const {
4364  return (_has_bits_[0] & 0x00008000u) != 0;
4365 }
4366 inline void ModelProto::set_has_test_steps() {
4367  _has_bits_[0] |= 0x00008000u;
4368 }
4369 inline void ModelProto::clear_has_test_steps() {
4370  _has_bits_[0] &= ~0x00008000u;
4371 }
4372 inline void ModelProto::clear_test_steps() {
4373  test_steps_ = 0;
4374  clear_has_test_steps();
4375 }
4376 inline ::google::protobuf::int32 ModelProto::test_steps() const {
4377  return test_steps_;
4378 }
4379 inline void ModelProto::set_test_steps(::google::protobuf::int32 value) {
4380  set_has_test_steps();
4381  test_steps_ = value;
4382 }
4383 
4384 // optional int32 step = 29 [default = 0];
4385 inline bool ModelProto::has_step() const {
4386  return (_has_bits_[0] & 0x00010000u) != 0;
4387 }
4388 inline void ModelProto::set_has_step() {
4389  _has_bits_[0] |= 0x00010000u;
4390 }
4391 inline void ModelProto::clear_has_step() {
4392  _has_bits_[0] &= ~0x00010000u;
4393 }
4394 inline void ModelProto::clear_step() {
4395  step_ = 0;
4396  clear_has_step();
4397 }
4398 inline ::google::protobuf::int32 ModelProto::step() const {
4399  return step_;
4400 }
4401 inline void ModelProto::set_step(::google::protobuf::int32 value) {
4402  set_has_step();
4403  step_ = value;
4404 }
4405 
4406 // optional .singa.UpdaterProto updater = 31;
4407 inline bool ModelProto::has_updater() const {
4408  return (_has_bits_[0] & 0x00020000u) != 0;
4409 }
4410 inline void ModelProto::set_has_updater() {
4411  _has_bits_[0] |= 0x00020000u;
4412 }
4413 inline void ModelProto::clear_has_updater() {
4414  _has_bits_[0] &= ~0x00020000u;
4415 }
4416 inline void ModelProto::clear_updater() {
4417  if (updater_ != NULL) updater_->::singa::UpdaterProto::Clear();
4418  clear_has_updater();
4419 }
4420 inline const ::singa::UpdaterProto& ModelProto::updater() const {
4421  return updater_ != NULL ? *updater_ : *default_instance_->updater_;
4422 }
4423 inline ::singa::UpdaterProto* ModelProto::mutable_updater() {
4424  set_has_updater();
4425  if (updater_ == NULL) updater_ = new ::singa::UpdaterProto;
4426  return updater_;
4427 }
4428 inline ::singa::UpdaterProto* ModelProto::release_updater() {
4429  clear_has_updater();
4430  ::singa::UpdaterProto* temp = updater_;
4431  updater_ = NULL;
4432  return temp;
4433 }
4434 inline void ModelProto::set_allocated_updater(::singa::UpdaterProto* updater) {
4435  delete updater_;
4436  updater_ = updater;
4437  if (updater) {
4438  set_has_updater();
4439  } else {
4440  clear_has_updater();
4441  }
4442 }
4443 
4444 // optional .singa.ModelProto.GradCalcAlg alg = 32 [default = kBackPropagation];
4445 inline bool ModelProto::has_alg() const {
4446  return (_has_bits_[0] & 0x00040000u) != 0;
4447 }
4448 inline void ModelProto::set_has_alg() {
4449  _has_bits_[0] |= 0x00040000u;
4450 }
4451 inline void ModelProto::clear_has_alg() {
4452  _has_bits_[0] &= ~0x00040000u;
4453 }
4454 inline void ModelProto::clear_alg() {
4455  alg_ = 1;
4456  clear_has_alg();
4457 }
4458 inline ::singa::ModelProto_GradCalcAlg ModelProto::alg() const {
4459  return static_cast< ::singa::ModelProto_GradCalcAlg >(alg_);
4460 }
4461 inline void ModelProto::set_alg(::singa::ModelProto_GradCalcAlg value) {
4462  assert(::singa::ModelProto_GradCalcAlg_IsValid(value));
4463  set_has_alg();
4464  alg_ = value;
4465 }
4466 
4467 // optional bool hogwild = 33 [default = false];
4468 inline bool ModelProto::has_hogwild() const {
4469  return (_has_bits_[0] & 0x00080000u) != 0;
4470 }
4471 inline void ModelProto::set_has_hogwild() {
4472  _has_bits_[0] |= 0x00080000u;
4473 }
4474 inline void ModelProto::clear_has_hogwild() {
4475  _has_bits_[0] &= ~0x00080000u;
4476 }
4477 inline void ModelProto::clear_hogwild() {
4478  hogwild_ = false;
4479  clear_has_hogwild();
4480 }
4481 inline bool ModelProto::hogwild() const {
4482  return hogwild_;
4483 }
4484 inline void ModelProto::set_hogwild(bool value) {
4485  set_has_hogwild();
4486  hogwild_ = value;
4487 }
4488 
4489 // optional .singa.NetProto neuralnet = 40;
4490 inline bool ModelProto::has_neuralnet() const {
4491  return (_has_bits_[0] & 0x00100000u) != 0;
4492 }
4493 inline void ModelProto::set_has_neuralnet() {
4494  _has_bits_[0] |= 0x00100000u;
4495 }
4496 inline void ModelProto::clear_has_neuralnet() {
4497  _has_bits_[0] &= ~0x00100000u;
4498 }
4499 inline void ModelProto::clear_neuralnet() {
4500  if (neuralnet_ != NULL) neuralnet_->::singa::NetProto::Clear();
4501  clear_has_neuralnet();
4502 }
4503 inline const ::singa::NetProto& ModelProto::neuralnet() const {
4504  return neuralnet_ != NULL ? *neuralnet_ : *default_instance_->neuralnet_;
4505 }
4506 inline ::singa::NetProto* ModelProto::mutable_neuralnet() {
4507  set_has_neuralnet();
4508  if (neuralnet_ == NULL) neuralnet_ = new ::singa::NetProto;
4509  return neuralnet_;
4510 }
4511 inline ::singa::NetProto* ModelProto::release_neuralnet() {
4512  clear_has_neuralnet();
4513  ::singa::NetProto* temp = neuralnet_;
4514  neuralnet_ = NULL;
4515  return temp;
4516 }
4517 inline void ModelProto::set_allocated_neuralnet(::singa::NetProto* neuralnet) {
4518  delete neuralnet_;
4519  neuralnet_ = neuralnet;
4520  if (neuralnet) {
4521  set_has_neuralnet();
4522  } else {
4523  clear_has_neuralnet();
4524  }
4525 }
4526 
4527 // optional bool debug = 41 [default = false];
4528 inline bool ModelProto::has_debug() const {
4529  return (_has_bits_[0] & 0x00200000u) != 0;
4530 }
4531 inline void ModelProto::set_has_debug() {
4532  _has_bits_[0] |= 0x00200000u;
4533 }
4534 inline void ModelProto::clear_has_debug() {
4535  _has_bits_[0] &= ~0x00200000u;
4536 }
4537 inline void ModelProto::clear_debug() {
4538  debug_ = false;
4539  clear_has_debug();
4540 }
4541 inline bool ModelProto::debug() const {
4542  return debug_;
4543 }
4544 inline void ModelProto::set_debug(bool value) {
4545  set_has_debug();
4546  debug_ = value;
4547 }
4548 
4549 // optional int32 warmup_steps = 50 [default = 0];
4550 inline bool ModelProto::has_warmup_steps() const {
4551  return (_has_bits_[0] & 0x00400000u) != 0;
4552 }
4553 inline void ModelProto::set_has_warmup_steps() {
4554  _has_bits_[0] |= 0x00400000u;
4555 }
4556 inline void ModelProto::clear_has_warmup_steps() {
4557  _has_bits_[0] &= ~0x00400000u;
4558 }
4559 inline void ModelProto::clear_warmup_steps() {
4560  warmup_steps_ = 0;
4561  clear_has_warmup_steps();
4562 }
4563 inline ::google::protobuf::int32 ModelProto::warmup_steps() const {
4564  return warmup_steps_;
4565 }
4566 inline void ModelProto::set_warmup_steps(::google::protobuf::int32 value) {
4567  set_has_warmup_steps();
4568  warmup_steps_ = value;
4569 }
4570 
4571 // -------------------------------------------------------------------
4572 
4573 // NetProto
4574 
4575 // repeated .singa.LayerProto layer = 1;
4576 inline int NetProto::layer_size() const {
4577  return layer_.size();
4578 }
4579 inline void NetProto::clear_layer() {
4580  layer_.Clear();
4581 }
4582 inline const ::singa::LayerProto& NetProto::layer(int index) const {
4583  return layer_.Get(index);
4584 }
4585 inline ::singa::LayerProto* NetProto::mutable_layer(int index) {
4586  return layer_.Mutable(index);
4587 }
4588 inline ::singa::LayerProto* NetProto::add_layer() {
4589  return layer_.Add();
4590 }
4591 inline const ::google::protobuf::RepeatedPtrField< ::singa::LayerProto >&
4592 NetProto::layer() const {
4593  return layer_;
4594 }
4595 inline ::google::protobuf::RepeatedPtrField< ::singa::LayerProto >*
4596 NetProto::mutable_layer() {
4597  return &layer_;
4598 }
4599 
4600 // optional .singa.PartitionType partition_type = 3 [default = kNone];
4601 inline bool NetProto::has_partition_type() const {
4602  return (_has_bits_[0] & 0x00000002u) != 0;
4603 }
4604 inline void NetProto::set_has_partition_type() {
4605  _has_bits_[0] |= 0x00000002u;
4606 }
4607 inline void NetProto::clear_has_partition_type() {
4608  _has_bits_[0] &= ~0x00000002u;
4609 }
4610 inline void NetProto::clear_partition_type() {
4611  partition_type_ = 2;
4612  clear_has_partition_type();
4613 }
4614 inline ::singa::PartitionType NetProto::partition_type() const {
4615  return static_cast< ::singa::PartitionType >(partition_type_);
4616 }
4617 inline void NetProto::set_partition_type(::singa::PartitionType value) {
4618  assert(::singa::PartitionType_IsValid(value));
4619  set_has_partition_type();
4620  partition_type_ = value;
4621 }
4622 
4623 // -------------------------------------------------------------------
4624 
4625 // ParamProto
4626 
4627 // optional string name = 1;
4628 inline bool ParamProto::has_name() const {
4629  return (_has_bits_[0] & 0x00000001u) != 0;
4630 }
4631 inline void ParamProto::set_has_name() {
4632  _has_bits_[0] |= 0x00000001u;
4633 }
4634 inline void ParamProto::clear_has_name() {
4635  _has_bits_[0] &= ~0x00000001u;
4636 }
4637 inline void ParamProto::clear_name() {
4638  if (name_ != &::google::protobuf::internal::kEmptyString) {
4639  name_->clear();
4640  }
4641  clear_has_name();
4642 }
4643 inline const ::std::string& ParamProto::name() const {
4644  return *name_;
4645 }
4646 inline void ParamProto::set_name(const ::std::string& value) {
4647  set_has_name();
4648  if (name_ == &::google::protobuf::internal::kEmptyString) {
4649  name_ = new ::std::string;
4650  }
4651  name_->assign(value);
4652 }
4653 inline void ParamProto::set_name(const char* value) {
4654  set_has_name();
4655  if (name_ == &::google::protobuf::internal::kEmptyString) {
4656  name_ = new ::std::string;
4657  }
4658  name_->assign(value);
4659 }
4660 inline void ParamProto::set_name(const char* value, size_t size) {
4661  set_has_name();
4662  if (name_ == &::google::protobuf::internal::kEmptyString) {
4663  name_ = new ::std::string;
4664  }
4665  name_->assign(reinterpret_cast<const char*>(value), size);
4666 }
4667 inline ::std::string* ParamProto::mutable_name() {
4668  set_has_name();
4669  if (name_ == &::google::protobuf::internal::kEmptyString) {
4670  name_ = new ::std::string;
4671  }
4672  return name_;
4673 }
4674 inline ::std::string* ParamProto::release_name() {
4675  clear_has_name();
4676  if (name_ == &::google::protobuf::internal::kEmptyString) {
4677  return NULL;
4678  } else {
4679  ::std::string* temp = name_;
4680  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
4681  return temp;
4682  }
4683 }
4684 inline void ParamProto::set_allocated_name(::std::string* name) {
4685  if (name_ != &::google::protobuf::internal::kEmptyString) {
4686  delete name_;
4687  }
4688  if (name) {
4689  set_has_name();
4690  name_ = name;
4691  } else {
4692  clear_has_name();
4693  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
4694  }
4695 }
4696 
4697 // optional int32 id = 2;
4698 inline bool ParamProto::has_id() const {
4699  return (_has_bits_[0] & 0x00000002u) != 0;
4700 }
4701 inline void ParamProto::set_has_id() {
4702  _has_bits_[0] |= 0x00000002u;
4703 }
4704 inline void ParamProto::clear_has_id() {
4705  _has_bits_[0] &= ~0x00000002u;
4706 }
4707 inline void ParamProto::clear_id() {
4708  id_ = 0;
4709  clear_has_id();
4710 }
4711 inline ::google::protobuf::int32 ParamProto::id() const {
4712  return id_;
4713 }
4714 inline void ParamProto::set_id(::google::protobuf::int32 value) {
4715  set_has_id();
4716  id_ = value;
4717 }
4718 
4719 // repeated int32 shape = 3;
4720 inline int ParamProto::shape_size() const {
4721  return shape_.size();
4722 }
4723 inline void ParamProto::clear_shape() {
4724  shape_.Clear();
4725 }
4726 inline ::google::protobuf::int32 ParamProto::shape(int index) const {
4727  return shape_.Get(index);
4728 }
4729 inline void ParamProto::set_shape(int index, ::google::protobuf::int32 value) {
4730  shape_.Set(index, value);
4731 }
4732 inline void ParamProto::add_shape(::google::protobuf::int32 value) {
4733  shape_.Add(value);
4734 }
4735 inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
4736 ParamProto::shape() const {
4737  return shape_;
4738 }
4739 inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
4740 ParamProto::mutable_shape() {
4741  return &shape_;
4742 }
4743 
4744 // optional int32 split_threshold = 4 [default = 5000000];
4745 inline bool ParamProto::has_split_threshold() const {
4746  return (_has_bits_[0] & 0x00000008u) != 0;
4747 }
4748 inline void ParamProto::set_has_split_threshold() {
4749  _has_bits_[0] |= 0x00000008u;
4750 }
4751 inline void ParamProto::clear_has_split_threshold() {
4752  _has_bits_[0] &= ~0x00000008u;
4753 }
4754 inline void ParamProto::clear_split_threshold() {
4755  split_threshold_ = 5000000;
4756  clear_has_split_threshold();
4757 }
4758 inline ::google::protobuf::int32 ParamProto::split_threshold() const {
4759  return split_threshold_;
4760 }
4761 inline void ParamProto::set_split_threshold(::google::protobuf::int32 value) {
4762  set_has_split_threshold();
4763  split_threshold_ = value;
4764 }
4765 
4766 // optional int32 partition_dim = 5 [default = -1];
4767 inline bool ParamProto::has_partition_dim() const {
4768  return (_has_bits_[0] & 0x00000010u) != 0;
4769 }
4770 inline void ParamProto::set_has_partition_dim() {
4771  _has_bits_[0] |= 0x00000010u;
4772 }
4773 inline void ParamProto::clear_has_partition_dim() {
4774  _has_bits_[0] &= ~0x00000010u;
4775 }
4776 inline void ParamProto::clear_partition_dim() {
4777  partition_dim_ = -1;
4778  clear_has_partition_dim();
4779 }
4780 inline ::google::protobuf::int32 ParamProto::partition_dim() const {
4781  return partition_dim_;
4782 }
4783 inline void ParamProto::set_partition_dim(::google::protobuf::int32 value) {
4784  set_has_partition_dim();
4785  partition_dim_ = value;
4786 }
4787 
4788 // optional int32 owner = 6;
4789 inline bool ParamProto::has_owner() const {
4790  return (_has_bits_[0] & 0x00000020u) != 0;
4791 }
4792 inline void ParamProto::set_has_owner() {
4793  _has_bits_[0] |= 0x00000020u;
4794 }
4795 inline void ParamProto::clear_has_owner() {
4796  _has_bits_[0] &= ~0x00000020u;
4797 }
4798 inline void ParamProto::clear_owner() {
4799  owner_ = 0;
4800  clear_has_owner();
4801 }
4802 inline ::google::protobuf::int32 ParamProto::owner() const {
4803  return owner_;
4804 }
4805 inline void ParamProto::set_owner(::google::protobuf::int32 value) {
4806  set_has_owner();
4807  owner_ = value;
4808 }
4809 
4810 // optional .singa.ParamProto.InitMethod init_method = 7 [default = kConstant];
4811 inline bool ParamProto::has_init_method() const {
4812  return (_has_bits_[0] & 0x00000040u) != 0;
4813 }
4814 inline void ParamProto::set_has_init_method() {
4815  _has_bits_[0] |= 0x00000040u;
4816 }
4817 inline void ParamProto::clear_has_init_method() {
4818  _has_bits_[0] &= ~0x00000040u;
4819 }
4820 inline void ParamProto::clear_init_method() {
4821  init_method_ = 0;
4822  clear_has_init_method();
4823 }
4824 inline ::singa::ParamProto_InitMethod ParamProto::init_method() const {
4825  return static_cast< ::singa::ParamProto_InitMethod >(init_method_);
4826 }
4827 inline void ParamProto::set_init_method(::singa::ParamProto_InitMethod value) {
4828  assert(::singa::ParamProto_InitMethod_IsValid(value));
4829  set_has_init_method();
4830  init_method_ = value;
4831 }
4832 
4833 // optional float value = 8 [default = 1];
4834 inline bool ParamProto::has_value() const {
4835  return (_has_bits_[0] & 0x00000080u) != 0;
4836 }
4837 inline void ParamProto::set_has_value() {
4838  _has_bits_[0] |= 0x00000080u;
4839 }
4840 inline void ParamProto::clear_has_value() {
4841  _has_bits_[0] &= ~0x00000080u;
4842 }
4843 inline void ParamProto::clear_value() {
4844  value_ = 1;
4845  clear_has_value();
4846 }
4847 inline float ParamProto::value() const {
4848  return value_;
4849 }
4850 inline void ParamProto::set_value(float value) {
4851  set_has_value();
4852  value_ = value;
4853 }
4854 
4855 // optional float low = 9 [default = -1];
4856 inline bool ParamProto::has_low() const {
4857  return (_has_bits_[0] & 0x00000100u) != 0;
4858 }
4859 inline void ParamProto::set_has_low() {
4860  _has_bits_[0] |= 0x00000100u;
4861 }
4862 inline void ParamProto::clear_has_low() {
4863  _has_bits_[0] &= ~0x00000100u;
4864 }
4865 inline void ParamProto::clear_low() {
4866  low_ = -1;
4867  clear_has_low();
4868 }
4869 inline float ParamProto::low() const {
4870  return low_;
4871 }
4872 inline void ParamProto::set_low(float value) {
4873  set_has_low();
4874  low_ = value;
4875 }
4876 
4877 // optional float high = 10 [default = 1];
4878 inline bool ParamProto::has_high() const {
4879  return (_has_bits_[0] & 0x00000200u) != 0;
4880 }
4881 inline void ParamProto::set_has_high() {
4882  _has_bits_[0] |= 0x00000200u;
4883 }
4884 inline void ParamProto::clear_has_high() {
4885  _has_bits_[0] &= ~0x00000200u;
4886 }
4887 inline void ParamProto::clear_high() {
4888  high_ = 1;
4889  clear_has_high();
4890 }
4891 inline float ParamProto::high() const {
4892  return high_;
4893 }
4894 inline void ParamProto::set_high(float value) {
4895  set_has_high();
4896  high_ = value;
4897 }
4898 
4899 // optional float mean = 11 [default = 0];
4900 inline bool ParamProto::has_mean() const {
4901  return (_has_bits_[0] & 0x00000400u) != 0;
4902 }
4903 inline void ParamProto::set_has_mean() {
4904  _has_bits_[0] |= 0x00000400u;
4905 }
4906 inline void ParamProto::clear_has_mean() {
4907  _has_bits_[0] &= ~0x00000400u;
4908 }
4909 inline void ParamProto::clear_mean() {
4910  mean_ = 0;
4911  clear_has_mean();
4912 }
4913 inline float ParamProto::mean() const {
4914  return mean_;
4915 }
4916 inline void ParamProto::set_mean(float value) {
4917  set_has_mean();
4918  mean_ = value;
4919 }
4920 
4921 // optional float std = 12 [default = 1];
4922 inline bool ParamProto::has_std() const {
4923  return (_has_bits_[0] & 0x00000800u) != 0;
4924 }
4925 inline void ParamProto::set_has_std() {
4926  _has_bits_[0] |= 0x00000800u;
4927 }
4928 inline void ParamProto::clear_has_std() {
4929  _has_bits_[0] &= ~0x00000800u;
4930 }
4931 inline void ParamProto::clear_std() {
4932  std_ = 1;
4933  clear_has_std();
4934 }
4935 inline float ParamProto::std() const {
4936  return std_;
4937 }
4938 inline void ParamProto::set_std(float value) {
4939  set_has_std();
4940  std_ = value;
4941 }
4942 
4943 // optional float learning_rate_multiplier = 13 [default = 1];
4944 inline bool ParamProto::has_learning_rate_multiplier() const {
4945  return (_has_bits_[0] & 0x00001000u) != 0;
4946 }
4947 inline void ParamProto::set_has_learning_rate_multiplier() {
4948  _has_bits_[0] |= 0x00001000u;
4949 }
4950 inline void ParamProto::clear_has_learning_rate_multiplier() {
4951  _has_bits_[0] &= ~0x00001000u;
4952 }
4953 inline void ParamProto::clear_learning_rate_multiplier() {
4954  learning_rate_multiplier_ = 1;
4955  clear_has_learning_rate_multiplier();
4956 }
4957 inline float ParamProto::learning_rate_multiplier() const {
4958  return learning_rate_multiplier_;
4959 }
4960 inline void ParamProto::set_learning_rate_multiplier(float value) {
4961  set_has_learning_rate_multiplier();
4962  learning_rate_multiplier_ = value;
4963 }
4964 
4965 // optional float weight_decay_multiplier = 14 [default = 1];
4966 inline bool ParamProto::has_weight_decay_multiplier() const {
4967  return (_has_bits_[0] & 0x00002000u) != 0;
4968 }
4969 inline void ParamProto::set_has_weight_decay_multiplier() {
4970  _has_bits_[0] |= 0x00002000u;
4971 }
4972 inline void ParamProto::clear_has_weight_decay_multiplier() {
4973  _has_bits_[0] &= ~0x00002000u;
4974 }
4975 inline void ParamProto::clear_weight_decay_multiplier() {
4976  weight_decay_multiplier_ = 1;
4977  clear_has_weight_decay_multiplier();
4978 }
4979 inline float ParamProto::weight_decay_multiplier() const {
4980  return weight_decay_multiplier_;
4981 }
4982 inline void ParamProto::set_weight_decay_multiplier(float value) {
4983  set_has_weight_decay_multiplier();
4984  weight_decay_multiplier_ = value;
4985 }
4986 
4987 // -------------------------------------------------------------------
4988 
4989 // BlobProtos
4990 
4991 // repeated .singa.BlobProto blobs = 1;
4992 inline int BlobProtos::blobs_size() const {
4993  return blobs_.size();
4994 }
4995 inline void BlobProtos::clear_blobs() {
4996  blobs_.Clear();
4997 }
4998 inline const ::singa::BlobProto& BlobProtos::blobs(int index) const {
4999  return blobs_.Get(index);
5000 }
5001 inline ::singa::BlobProto* BlobProtos::mutable_blobs(int index) {
5002  return blobs_.Mutable(index);
5003 }
5004 inline ::singa::BlobProto* BlobProtos::add_blobs() {
5005  return blobs_.Add();
5006 }
5007 inline const ::google::protobuf::RepeatedPtrField< ::singa::BlobProto >&
5008 BlobProtos::blobs() const {
5009  return blobs_;
5010 }
5011 inline ::google::protobuf::RepeatedPtrField< ::singa::BlobProto >*
5012 BlobProtos::mutable_blobs() {
5013  return &blobs_;
5014 }
5015 
5016 // repeated int32 ids = 2;
5017 inline int BlobProtos::ids_size() const {
5018  return ids_.size();
5019 }
5020 inline void BlobProtos::clear_ids() {
5021  ids_.Clear();
5022 }
5023 inline ::google::protobuf::int32 BlobProtos::ids(int index) const {
5024  return ids_.Get(index);
5025 }
5026 inline void BlobProtos::set_ids(int index, ::google::protobuf::int32 value) {
5027  ids_.Set(index, value);
5028 }
5029 inline void BlobProtos::add_ids(::google::protobuf::int32 value) {
5030  ids_.Add(value);
5031 }
5032 inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
5033 BlobProtos::ids() const {
5034  return ids_;
5035 }
5036 inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
5037 BlobProtos::mutable_ids() {
5038  return &ids_;
5039 }
5040 
5041 // repeated string names = 3;
5042 inline int BlobProtos::names_size() const {
5043  return names_.size();
5044 }
5045 inline void BlobProtos::clear_names() {
5046  names_.Clear();
5047 }
5048 inline const ::std::string& BlobProtos::names(int index) const {
5049  return names_.Get(index);
5050 }
5051 inline ::std::string* BlobProtos::mutable_names(int index) {
5052  return names_.Mutable(index);
5053 }
5054 inline void BlobProtos::set_names(int index, const ::std::string& value) {
5055  names_.Mutable(index)->assign(value);
5056 }
5057 inline void BlobProtos::set_names(int index, const char* value) {
5058  names_.Mutable(index)->assign(value);
5059 }
5060 inline void BlobProtos::set_names(int index, const char* value, size_t size) {
5061  names_.Mutable(index)->assign(
5062  reinterpret_cast<const char*>(value), size);
5063 }
5064 inline ::std::string* BlobProtos::add_names() {
5065  return names_.Add();
5066 }
5067 inline void BlobProtos::add_names(const ::std::string& value) {
5068  names_.Add()->assign(value);
5069 }
5070 inline void BlobProtos::add_names(const char* value) {
5071  names_.Add()->assign(value);
5072 }
5073 inline void BlobProtos::add_names(const char* value, size_t size) {
5074  names_.Add()->assign(reinterpret_cast<const char*>(value), size);
5075 }
5076 inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
5077 BlobProtos::names() const {
5078  return names_;
5079 }
5080 inline ::google::protobuf::RepeatedPtrField< ::std::string>*
5081 BlobProtos::mutable_names() {
5082  return &names_;
5083 }
5084 
5085 // -------------------------------------------------------------------
5086 
5087 // LayerProto
5088 
5089 // optional string name = 1;
5090 inline bool LayerProto::has_name() const {
5091  return (_has_bits_[0] & 0x00000001u) != 0;
5092 }
5093 inline void LayerProto::set_has_name() {
5094  _has_bits_[0] |= 0x00000001u;
5095 }
5096 inline void LayerProto::clear_has_name() {
5097  _has_bits_[0] &= ~0x00000001u;
5098 }
5099 inline void LayerProto::clear_name() {
5100  if (name_ != &::google::protobuf::internal::kEmptyString) {
5101  name_->clear();
5102  }
5103  clear_has_name();
5104 }
5105 inline const ::std::string& LayerProto::name() const {
5106  return *name_;
5107 }
5108 inline void LayerProto::set_name(const ::std::string& value) {
5109  set_has_name();
5110  if (name_ == &::google::protobuf::internal::kEmptyString) {
5111  name_ = new ::std::string;
5112  }
5113  name_->assign(value);
5114 }
5115 inline void LayerProto::set_name(const char* value) {
5116  set_has_name();
5117  if (name_ == &::google::protobuf::internal::kEmptyString) {
5118  name_ = new ::std::string;
5119  }
5120  name_->assign(value);
5121 }
5122 inline void LayerProto::set_name(const char* value, size_t size) {
5123  set_has_name();
5124  if (name_ == &::google::protobuf::internal::kEmptyString) {
5125  name_ = new ::std::string;
5126  }
5127  name_->assign(reinterpret_cast<const char*>(value), size);
5128 }
5129 inline ::std::string* LayerProto::mutable_name() {
5130  set_has_name();
5131  if (name_ == &::google::protobuf::internal::kEmptyString) {
5132  name_ = new ::std::string;
5133  }
5134  return name_;
5135 }
5136 inline ::std::string* LayerProto::release_name() {
5137  clear_has_name();
5138  if (name_ == &::google::protobuf::internal::kEmptyString) {
5139  return NULL;
5140  } else {
5141  ::std::string* temp = name_;
5142  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
5143  return temp;
5144  }
5145 }
5146 inline void LayerProto::set_allocated_name(::std::string* name) {
5147  if (name_ != &::google::protobuf::internal::kEmptyString) {
5148  delete name_;
5149  }
5150  if (name) {
5151  set_has_name();
5152  name_ = name;
5153  } else {
5154  clear_has_name();
5155  name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
5156  }
5157 }
5158 
5159 // optional string type = 2;
5160 inline bool LayerProto::has_type() const {
5161  return (_has_bits_[0] & 0x00000002u) != 0;
5162 }
5163 inline void LayerProto::set_has_type() {
5164  _has_bits_[0] |= 0x00000002u;
5165 }
5166 inline void LayerProto::clear_has_type() {
5167  _has_bits_[0] &= ~0x00000002u;
5168 }
5169 inline void LayerProto::clear_type() {
5170  if (type_ != &::google::protobuf::internal::kEmptyString) {
5171  type_->clear();
5172  }
5173  clear_has_type();
5174 }
5175 inline const ::std::string& LayerProto::type() const {
5176  return *type_;
5177 }
5178 inline void LayerProto::set_type(const ::std::string& value) {
5179  set_has_type();
5180  if (type_ == &::google::protobuf::internal::kEmptyString) {
5181  type_ = new ::std::string;
5182  }
5183  type_->assign(value);
5184 }
5185 inline void LayerProto::set_type(const char* value) {
5186  set_has_type();
5187  if (type_ == &::google::protobuf::internal::kEmptyString) {
5188  type_ = new ::std::string;
5189  }
5190  type_->assign(value);
5191 }
5192 inline void LayerProto::set_type(const char* value, size_t size) {
5193  set_has_type();
5194  if (type_ == &::google::protobuf::internal::kEmptyString) {
5195  type_ = new ::std::string;
5196  }
5197  type_->assign(reinterpret_cast<const char*>(value), size);
5198 }
5199 inline ::std::string* LayerProto::mutable_type() {
5200  set_has_type();
5201  if (type_ == &::google::protobuf::internal::kEmptyString) {
5202  type_ = new ::std::string;
5203  }
5204  return type_;
5205 }
5206 inline ::std::string* LayerProto::release_type() {
5207  clear_has_type();
5208  if (type_ == &::google::protobuf::internal::kEmptyString) {
5209  return NULL;
5210  } else {
5211  ::std::string* temp = type_;
5212  type_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
5213  return temp;
5214  }
5215 }
5216 inline void LayerProto::set_allocated_type(::std::string* type) {
5217  if (type_ != &::google::protobuf::internal::kEmptyString) {
5218  delete type_;
5219  }
5220  if (type) {
5221  set_has_type();
5222  type_ = type;
5223  } else {
5224  clear_has_type();
5225  type_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
5226  }
5227 }
5228 
5229 // repeated string srclayers = 3;
5230 inline int LayerProto::srclayers_size() const {
5231  return srclayers_.size();
5232 }
5233 inline void LayerProto::clear_srclayers() {
5234  srclayers_.Clear();
5235 }
5236 inline const ::std::string& LayerProto::srclayers(int index) const {
5237  return srclayers_.Get(index);
5238 }
5239 inline ::std::string* LayerProto::mutable_srclayers(int index) {
5240  return srclayers_.Mutable(index);
5241 }
5242 inline void LayerProto::set_srclayers(int index, const ::std::string& value) {
5243  srclayers_.Mutable(index)->assign(value);
5244 }
5245 inline void LayerProto::set_srclayers(int index, const char* value) {
5246  srclayers_.Mutable(index)->assign(value);
5247 }
5248 inline void LayerProto::set_srclayers(int index, const char* value, size_t size) {
5249  srclayers_.Mutable(index)->assign(
5250  reinterpret_cast<const char*>(value), size);
5251 }
5252 inline ::std::string* LayerProto::add_srclayers() {
5253  return srclayers_.Add();
5254 }
5255 inline void LayerProto::add_srclayers(const ::std::string& value) {
5256  srclayers_.Add()->assign(value);
5257 }
5258 inline void LayerProto::add_srclayers(const char* value) {
5259  srclayers_.Add()->assign(value);
5260 }
5261 inline void LayerProto::add_srclayers(const char* value, size_t size) {
5262  srclayers_.Add()->assign(reinterpret_cast<const char*>(value), size);
5263 }
5264 inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
5265 LayerProto::srclayers() const {
5266  return srclayers_;
5267 }
5268 inline ::google::protobuf::RepeatedPtrField< ::std::string>*
5269 LayerProto::mutable_srclayers() {
5270  return &srclayers_;
5271 }
5272 
5273 // optional int32 locationid = 4 [default = 0];
5274 inline bool LayerProto::has_locationid() const {
5275  return (_has_bits_[0] & 0x00000008u) != 0;
5276 }
5277 inline void LayerProto::set_has_locationid() {
5278  _has_bits_[0] |= 0x00000008u;
5279 }
5280 inline void LayerProto::clear_has_locationid() {
5281  _has_bits_[0] &= ~0x00000008u;
5282 }
5283 inline void LayerProto::clear_locationid() {
5284  locationid_ = 0;
5285  clear_has_locationid();
5286 }
5287 inline ::google::protobuf::int32 LayerProto::locationid() const {
5288  return locationid_;
5289 }
5290 inline void LayerProto::set_locationid(::google::protobuf::int32 value) {
5291  set_has_locationid();
5292  locationid_ = value;
5293 }
5294 
5295 // optional int32 partitionid = 5 [default = 0];
5296 inline bool LayerProto::has_partitionid() const {
5297  return (_has_bits_[0] & 0x00000010u) != 0;
5298 }
5299 inline void LayerProto::set_has_partitionid() {
5300  _has_bits_[0] |= 0x00000010u;
5301 }
5302 inline void LayerProto::clear_has_partitionid() {
5303  _has_bits_[0] &= ~0x00000010u;
5304 }
5305 inline void LayerProto::clear_partitionid() {
5306  partitionid_ = 0;
5307  clear_has_partitionid();
5308 }
5309 inline ::google::protobuf::int32 LayerProto::partitionid() const {
5310  return partitionid_;
5311 }
5312 inline void LayerProto::set_partitionid(::google::protobuf::int32 value) {
5313  set_has_partitionid();
5314  partitionid_ = value;
5315 }
5316 
5317 // optional .singa.PartitionType partition_type = 6;
5318 inline bool LayerProto::has_partition_type() const {
5319  return (_has_bits_[0] & 0x00000020u) != 0;
5320 }
5321 inline void LayerProto::set_has_partition_type() {
5322  _has_bits_[0] |= 0x00000020u;
5323 }
5324 inline void LayerProto::clear_has_partition_type() {
5325  _has_bits_[0] &= ~0x00000020u;
5326 }
5327 inline void LayerProto::clear_partition_type() {
5328  partition_type_ = 0;
5329  clear_has_partition_type();
5330 }
5331 inline ::singa::PartitionType LayerProto::partition_type() const {
5332  return static_cast< ::singa::PartitionType >(partition_type_);
5333 }
5334 inline void LayerProto::set_partition_type(::singa::PartitionType value) {
5335  assert(::singa::PartitionType_IsValid(value));
5336  set_has_partition_type();
5337  partition_type_ = value;
5338 }
5339 
5340 // optional string datablob = 7;
5341 inline bool LayerProto::has_datablob() const {
5342  return (_has_bits_[0] & 0x00000040u) != 0;
5343 }
5344 inline void LayerProto::set_has_datablob() {
5345  _has_bits_[0] |= 0x00000040u;
5346 }
5347 inline void LayerProto::clear_has_datablob() {
5348  _has_bits_[0] &= ~0x00000040u;
5349 }
5350 inline void LayerProto::clear_datablob() {
5351  if (datablob_ != &::google::protobuf::internal::kEmptyString) {
5352  datablob_->clear();
5353  }
5354  clear_has_datablob();
5355 }
5356 inline const ::std::string& LayerProto::datablob() const {
5357  return *datablob_;
5358 }
5359 inline void LayerProto::set_datablob(const ::std::string& value) {
5360  set_has_datablob();
5361  if (datablob_ == &::google::protobuf::internal::kEmptyString) {
5362  datablob_ = new ::std::string;
5363  }
5364  datablob_->assign(value);
5365 }
5366 inline void LayerProto::set_datablob(const char* value) {
5367  set_has_datablob();
5368  if (datablob_ == &::google::protobuf::internal::kEmptyString) {
5369  datablob_ = new ::std::string;
5370  }
5371  datablob_->assign(value);
5372 }
5373 inline void LayerProto::set_datablob(const char* value, size_t size) {
5374  set_has_datablob();
5375  if (datablob_ == &::google::protobuf::internal::kEmptyString) {
5376  datablob_ = new ::std::string;
5377  }
5378  datablob_->assign(reinterpret_cast<const char*>(value), size);
5379 }
5380 inline ::std::string* LayerProto::mutable_datablob() {
5381  set_has_datablob();
5382  if (datablob_ == &::google::protobuf::internal::kEmptyString) {
5383  datablob_ = new ::std::string;
5384  }
5385  return datablob_;
5386 }
5387 inline ::std::string* LayerProto::release_datablob() {
5388  clear_has_datablob();
5389  if (datablob_ == &::google::protobuf::internal::kEmptyString) {
5390  return NULL;
5391  } else {
5392  ::std::string* temp = datablob_;
5393  datablob_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
5394  return temp;
5395  }
5396 }
5397 inline void LayerProto::set_allocated_datablob(::std::string* datablob) {
5398  if (datablob_ != &::google::protobuf::internal::kEmptyString) {
5399  delete datablob_;
5400  }
5401  if (datablob) {
5402  set_has_datablob();
5403  datablob_ = datablob;
5404  } else {
5405  clear_has_datablob();
5406  datablob_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
5407  }
5408 }
5409 
5410 // repeated string share_ary = 11;
5411 inline int LayerProto::share_ary_size() const {
5412  return share_ary_.size();
5413 }
5414 inline void LayerProto::clear_share_ary() {
5415  share_ary_.Clear();
5416 }
5417 inline const ::std::string& LayerProto::share_ary(int index) const {
5418  return share_ary_.Get(index);
5419 }
5420 inline ::std::string* LayerProto::mutable_share_ary(int index) {
5421  return share_ary_.Mutable(index);
5422 }
5423 inline void LayerProto::set_share_ary(int index, const ::std::string& value) {
5424  share_ary_.Mutable(index)->assign(value);
5425 }
5426 inline void LayerProto::set_share_ary(int index, const char* value) {
5427  share_ary_.Mutable(index)->assign(value);
5428 }
5429 inline void LayerProto::set_share_ary(int index, const char* value, size_t size) {
5430  share_ary_.Mutable(index)->assign(
5431  reinterpret_cast<const char*>(value), size);
5432 }
5433 inline ::std::string* LayerProto::add_share_ary() {
5434  return share_ary_.Add();
5435 }
5436 inline void LayerProto::add_share_ary(const ::std::string& value) {
5437  share_ary_.Add()->assign(value);
5438 }
5439 inline void LayerProto::add_share_ary(const char* value) {
5440  share_ary_.Add()->assign(value);
5441 }
5442 inline void LayerProto::add_share_ary(const char* value, size_t size) {
5443  share_ary_.Add()->assign(reinterpret_cast<const char*>(value), size);
5444 }
5445 inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
5446 LayerProto::share_ary() const {
5447  return share_ary_;
5448 }
5449 inline ::google::protobuf::RepeatedPtrField< ::std::string>*
5450 LayerProto::mutable_share_ary() {
5451  return &share_ary_;
5452 }
5453 
5454 // repeated .singa.ParamProto param = 12;
5455 inline int LayerProto::param_size() const {
5456  return param_.size();
5457 }
5458 inline void LayerProto::clear_param() {
5459  param_.Clear();
5460 }
5461 inline const ::singa::ParamProto& LayerProto::param(int index) const {
5462  return param_.Get(index);
5463 }
5464 inline ::singa::ParamProto* LayerProto::mutable_param(int index) {
5465  return param_.Mutable(index);
5466 }
5467 inline ::singa::ParamProto* LayerProto::add_param() {
5468  return param_.Add();
5469 }
5470 inline const ::google::protobuf::RepeatedPtrField< ::singa::ParamProto >&
5471 LayerProto::param() const {
5472  return param_;
5473 }
5474 inline ::google::protobuf::RepeatedPtrField< ::singa::ParamProto >*
5475 LayerProto::mutable_param() {
5476  return &param_;
5477 }
5478 
5479 // repeated string share_param = 13;
5480 inline int LayerProto::share_param_size() const {
5481  return share_param_.size();
5482 }
5483 inline void LayerProto::clear_share_param() {
5484  share_param_.Clear();
5485 }
5486 inline const ::std::string& LayerProto::share_param(int index) const {
5487  return share_param_.Get(index);
5488 }
5489 inline ::std::string* LayerProto::mutable_share_param(int index) {
5490  return share_param_.Mutable(index);
5491 }
5492 inline void LayerProto::set_share_param(int index, const ::std::string& value) {
5493  share_param_.Mutable(index)->assign(value);
5494 }
5495 inline void LayerProto::set_share_param(int index, const char* value) {
5496  share_param_.Mutable(index)->assign(value);
5497 }
5498 inline void LayerProto::set_share_param(int index, const char* value, size_t size) {
5499  share_param_.Mutable(index)->assign(
5500  reinterpret_cast<const char*>(value), size);
5501 }
5502 inline ::std::string* LayerProto::add_share_param() {
5503  return share_param_.Add();
5504 }
5505 inline void LayerProto::add_share_param(const ::std::string& value) {
5506  share_param_.Add()->assign(value);
5507 }
5508 inline void LayerProto::add_share_param(const char* value) {
5509  share_param_.Add()->assign(value);
5510 }
5511 inline void LayerProto::add_share_param(const char* value, size_t size) {
5512  share_param_.Add()->assign(reinterpret_cast<const char*>(value), size);
5513 }
5514 inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
5515 LayerProto::share_param() const {
5516  return share_param_;
5517 }
5518 inline ::google::protobuf::RepeatedPtrField< ::std::string>*
5519 LayerProto::mutable_share_param() {
5520  return &share_param_;
5521 }
5522 
5523 // repeated .singa.Phase exclude = 20;
5524 inline int LayerProto::exclude_size() const {
5525  return exclude_.size();
5526 }
5527 inline void LayerProto::clear_exclude() {
5528  exclude_.Clear();
5529 }
5530 inline ::singa::Phase LayerProto::exclude(int index) const {
5531  return static_cast< ::singa::Phase >(exclude_.Get(index));
5532 }
5533 inline void LayerProto::set_exclude(int index, ::singa::Phase value) {
5534  assert(::singa::Phase_IsValid(value));
5535  exclude_.Set(index, value);
5536 }
5537 inline void LayerProto::add_exclude(::singa::Phase value) {
5538  assert(::singa::Phase_IsValid(value));
5539  exclude_.Add(value);
5540 }
5541 inline const ::google::protobuf::RepeatedField<int>&
5542 LayerProto::exclude() const {
5543  return exclude_;
5544 }
5545 inline ::google::protobuf::RepeatedField<int>*
5546 LayerProto::mutable_exclude() {
5547  return &exclude_;
5548 }
5549 
5550 // optional .singa.ConvolutionProto convolution_param = 21;
5551 inline bool LayerProto::has_convolution_param() const {
5552  return (_has_bits_[0] & 0x00000800u) != 0;
5553 }
5554 inline void LayerProto::set_has_convolution_param() {
5555  _has_bits_[0] |= 0x00000800u;
5556 }
5557 inline void LayerProto::clear_has_convolution_param() {
5558  _has_bits_[0] &= ~0x00000800u;
5559 }
5560 inline void LayerProto::clear_convolution_param() {
5561  if (convolution_param_ != NULL) convolution_param_->::singa::ConvolutionProto::Clear();
5562  clear_has_convolution_param();
5563 }
5564 inline const ::singa::ConvolutionProto& LayerProto::convolution_param() const {
5565  return convolution_param_ != NULL ? *convolution_param_ : *default_instance_->convolution_param_;
5566 }
5567 inline ::singa::ConvolutionProto* LayerProto::mutable_convolution_param() {
5568  set_has_convolution_param();
5569  if (convolution_param_ == NULL) convolution_param_ = new ::singa::ConvolutionProto;
5570  return convolution_param_;
5571 }
5572 inline ::singa::ConvolutionProto* LayerProto::release_convolution_param() {
5573  clear_has_convolution_param();
5574  ::singa::ConvolutionProto* temp = convolution_param_;
5575  convolution_param_ = NULL;
5576  return temp;
5577 }
5578 inline void LayerProto::set_allocated_convolution_param(::singa::ConvolutionProto* convolution_param) {
5579  delete convolution_param_;
5580  convolution_param_ = convolution_param;
5581  if (convolution_param) {
5582  set_has_convolution_param();
5583  } else {
5584  clear_has_convolution_param();
5585  }
5586 }
5587 
5588 // optional .singa.ConcateProto concate_param = 31;
5589 inline bool LayerProto::has_concate_param() const {
5590  return (_has_bits_[0] & 0x00001000u) != 0;
5591 }
5592 inline void LayerProto::set_has_concate_param() {
5593  _has_bits_[0] |= 0x00001000u;
5594 }
5595 inline void LayerProto::clear_has_concate_param() {
5596  _has_bits_[0] &= ~0x00001000u;
5597 }
5598 inline void LayerProto::clear_concate_param() {
5599  if (concate_param_ != NULL) concate_param_->::singa::ConcateProto::Clear();
5600  clear_has_concate_param();
5601 }
5602 inline const ::singa::ConcateProto& LayerProto::concate_param() const {
5603  return concate_param_ != NULL ? *concate_param_ : *default_instance_->concate_param_;
5604 }
5605 inline ::singa::ConcateProto* LayerProto::mutable_concate_param() {
5606  set_has_concate_param();
5607  if (concate_param_ == NULL) concate_param_ = new ::singa::ConcateProto;
5608  return concate_param_;
5609 }
5610 inline ::singa::ConcateProto* LayerProto::release_concate_param() {
5611  clear_has_concate_param();
5612  ::singa::ConcateProto* temp = concate_param_;
5613  concate_param_ = NULL;
5614  return temp;
5615 }
5616 inline void LayerProto::set_allocated_concate_param(::singa::ConcateProto* concate_param) {
5617  delete concate_param_;
5618  concate_param_ = concate_param;
5619  if (concate_param) {
5620  set_has_concate_param();
5621  } else {
5622  clear_has_concate_param();
5623  }
5624 }
5625 
5626 // optional .singa.DataProto data_param = 22;
5627 inline bool LayerProto::has_data_param() const {
5628  return (_has_bits_[0] & 0x00002000u) != 0;
5629 }
5630 inline void LayerProto::set_has_data_param() {
5631  _has_bits_[0] |= 0x00002000u;
5632 }
5633 inline void LayerProto::clear_has_data_param() {
5634  _has_bits_[0] &= ~0x00002000u;
5635 }
5636 inline void LayerProto::clear_data_param() {
5637  if (data_param_ != NULL) data_param_->::singa::DataProto::Clear();
5638  clear_has_data_param();
5639 }
5640 inline const ::singa::DataProto& LayerProto::data_param() const {
5641  return data_param_ != NULL ? *data_param_ : *default_instance_->data_param_;
5642 }
5643 inline ::singa::DataProto* LayerProto::mutable_data_param() {
5644  set_has_data_param();
5645  if (data_param_ == NULL) data_param_ = new ::singa::DataProto;
5646  return data_param_;
5647 }
5648 inline ::singa::DataProto* LayerProto::release_data_param() {
5649  clear_has_data_param();
5650  ::singa::DataProto* temp = data_param_;
5651  data_param_ = NULL;
5652  return temp;
5653 }
5654 inline void LayerProto::set_allocated_data_param(::singa::DataProto* data_param) {
5655  delete data_param_;
5656  data_param_ = data_param;
5657  if (data_param) {
5658  set_has_data_param();
5659  } else {
5660  clear_has_data_param();
5661  }
5662 }
5663 
5664 // optional .singa.DropoutProto dropout_param = 23;
5665 inline bool LayerProto::has_dropout_param() const {
5666  return (_has_bits_[0] & 0x00004000u) != 0;
5667 }
5668 inline void LayerProto::set_has_dropout_param() {
5669  _has_bits_[0] |= 0x00004000u;
5670 }
5671 inline void LayerProto::clear_has_dropout_param() {
5672  _has_bits_[0] &= ~0x00004000u;
5673 }
5674 inline void LayerProto::clear_dropout_param() {
5675  if (dropout_param_ != NULL) dropout_param_->::singa::DropoutProto::Clear();
5676  clear_has_dropout_param();
5677 }
5678 inline const ::singa::DropoutProto& LayerProto::dropout_param() const {
5679  return dropout_param_ != NULL ? *dropout_param_ : *default_instance_->dropout_param_;
5680 }
5681 inline ::singa::DropoutProto* LayerProto::mutable_dropout_param() {
5682  set_has_dropout_param();
5683  if (dropout_param_ == NULL) dropout_param_ = new ::singa::DropoutProto;
5684  return dropout_param_;
5685 }
5686 inline ::singa::DropoutProto* LayerProto::release_dropout_param() {
5687  clear_has_dropout_param();
5688  ::singa::DropoutProto* temp = dropout_param_;
5689  dropout_param_ = NULL;
5690  return temp;
5691 }
5692 inline void LayerProto::set_allocated_dropout_param(::singa::DropoutProto* dropout_param) {
5693  delete dropout_param_;
5694  dropout_param_ = dropout_param;
5695  if (dropout_param) {
5696  set_has_dropout_param();
5697  } else {
5698  clear_has_dropout_param();
5699  }
5700 }
5701 
5702 // optional .singa.InnerProductProto inner_product_param = 24;
5703 inline bool LayerProto::has_inner_product_param() const {
5704  return (_has_bits_[0] & 0x00008000u) != 0;
5705 }
5706 inline void LayerProto::set_has_inner_product_param() {
5707  _has_bits_[0] |= 0x00008000u;
5708 }
5709 inline void LayerProto::clear_has_inner_product_param() {
5710  _has_bits_[0] &= ~0x00008000u;
5711 }
5712 inline void LayerProto::clear_inner_product_param() {
5713  if (inner_product_param_ != NULL) inner_product_param_->::singa::InnerProductProto::Clear();
5714  clear_has_inner_product_param();
5715 }
5716 inline const ::singa::InnerProductProto& LayerProto::inner_product_param() const {
5717  return inner_product_param_ != NULL ? *inner_product_param_ : *default_instance_->inner_product_param_;
5718 }
5719 inline ::singa::InnerProductProto* LayerProto::mutable_inner_product_param() {
5720  set_has_inner_product_param();
5721  if (inner_product_param_ == NULL) inner_product_param_ = new ::singa::InnerProductProto;
5722  return inner_product_param_;
5723 }
5724 inline ::singa::InnerProductProto* LayerProto::release_inner_product_param() {
5725  clear_has_inner_product_param();
5726  ::singa::InnerProductProto* temp = inner_product_param_;
5727  inner_product_param_ = NULL;
5728  return temp;
5729 }
5730 inline void LayerProto::set_allocated_inner_product_param(::singa::InnerProductProto* inner_product_param) {
5731  delete inner_product_param_;
5732  inner_product_param_ = inner_product_param;
5733  if (inner_product_param) {
5734  set_has_inner_product_param();
5735  } else {
5736  clear_has_inner_product_param();
5737  }
5738 }
5739 
5740 // optional .singa.LRNProto lrn_param = 25;
5741 inline bool LayerProto::has_lrn_param() const {
5742  return (_has_bits_[0] & 0x00010000u) != 0;
5743 }
5744 inline void LayerProto::set_has_lrn_param() {
5745  _has_bits_[0] |= 0x00010000u;
5746 }
5747 inline void LayerProto::clear_has_lrn_param() {
5748  _has_bits_[0] &= ~0x00010000u;
5749 }
5750 inline void LayerProto::clear_lrn_param() {
5751  if (lrn_param_ != NULL) lrn_param_->::singa::LRNProto::Clear();
5752  clear_has_lrn_param();
5753 }
5754 inline const ::singa::LRNProto& LayerProto::lrn_param() const {
5755  return lrn_param_ != NULL ? *lrn_param_ : *default_instance_->lrn_param_;
5756 }
5757 inline ::singa::LRNProto* LayerProto::mutable_lrn_param() {
5758  set_has_lrn_param();
5759  if (lrn_param_ == NULL) lrn_param_ = new ::singa::LRNProto;
5760  return lrn_param_;
5761 }
5762 inline ::singa::LRNProto* LayerProto::release_lrn_param() {
5763  clear_has_lrn_param();
5764  ::singa::LRNProto* temp = lrn_param_;
5765  lrn_param_ = NULL;
5766  return temp;
5767 }
5768 inline void LayerProto::set_allocated_lrn_param(::singa::LRNProto* lrn_param) {
5769  delete lrn_param_;
5770  lrn_param_ = lrn_param;
5771  if (lrn_param) {
5772  set_has_lrn_param();
5773  } else {
5774  clear_has_lrn_param();
5775  }
5776 }
5777 
5778 // optional .singa.MnistProto mnist_param = 26;
5779 inline bool LayerProto::has_mnist_param() const {
5780  return (_has_bits_[0] & 0x00020000u) != 0;
5781 }
5782 inline void LayerProto::set_has_mnist_param() {
5783  _has_bits_[0] |= 0x00020000u;
5784 }
5785 inline void LayerProto::clear_has_mnist_param() {
5786  _has_bits_[0] &= ~0x00020000u;
5787 }
5788 inline void LayerProto::clear_mnist_param() {
5789  if (mnist_param_ != NULL) mnist_param_->::singa::MnistProto::Clear();
5790  clear_has_mnist_param();
5791 }
5792 inline const ::singa::MnistProto& LayerProto::mnist_param() const {
5793  return mnist_param_ != NULL ? *mnist_param_ : *default_instance_->mnist_param_;
5794 }
5795 inline ::singa::MnistProto* LayerProto::mutable_mnist_param() {
5796  set_has_mnist_param();
5797  if (mnist_param_ == NULL) mnist_param_ = new ::singa::MnistProto;
5798  return mnist_param_;
5799 }
5800 inline ::singa::MnistProto* LayerProto::release_mnist_param() {
5801  clear_has_mnist_param();
5802  ::singa::MnistProto* temp = mnist_param_;
5803  mnist_param_ = NULL;
5804  return temp;
5805 }
5806 inline void LayerProto::set_allocated_mnist_param(::singa::MnistProto* mnist_param) {
5807  delete mnist_param_;
5808  mnist_param_ = mnist_param;
5809  if (mnist_param) {
5810  set_has_mnist_param();
5811  } else {
5812  clear_has_mnist_param();
5813  }
5814 }
5815 
5816 // optional .singa.PoolingProto pooling_param = 27;
5817 inline bool LayerProto::has_pooling_param() const {
5818  return (_has_bits_[0] & 0x00040000u) != 0;
5819 }
5820 inline void LayerProto::set_has_pooling_param() {
5821  _has_bits_[0] |= 0x00040000u;
5822 }
5823 inline void LayerProto::clear_has_pooling_param() {
5824  _has_bits_[0] &= ~0x00040000u;
5825 }
5826 inline void LayerProto::clear_pooling_param() {
5827  if (pooling_param_ != NULL) pooling_param_->::singa::PoolingProto::Clear();
5828  clear_has_pooling_param();
5829 }
5830 inline const ::singa::PoolingProto& LayerProto::pooling_param() const {
5831  return pooling_param_ != NULL ? *pooling_param_ : *default_instance_->pooling_param_;
5832 }
5833 inline ::singa::PoolingProto* LayerProto::mutable_pooling_param() {
5834  set_has_pooling_param();
5835  if (pooling_param_ == NULL) pooling_param_ = new ::singa::PoolingProto;
5836  return pooling_param_;
5837 }
5838 inline ::singa::PoolingProto* LayerProto::release_pooling_param() {
5839  clear_has_pooling_param();
5840  ::singa::PoolingProto* temp = pooling_param_;
5841  pooling_param_ = NULL;
5842  return temp;
5843 }
5844 inline void LayerProto::set_allocated_pooling_param(::singa::PoolingProto* pooling_param) {
5845  delete pooling_param_;
5846  pooling_param_ = pooling_param;
5847  if (pooling_param) {
5848  set_has_pooling_param();
5849  } else {
5850  clear_has_pooling_param();
5851  }
5852 }
5853 
5854 // repeated .singa.LayerProto sublayers = 35;
5855 inline int LayerProto::sublayers_size() const {
5856  return sublayers_.size();
5857 }
5858 inline void LayerProto::clear_sublayers() {
5859  sublayers_.Clear();
5860 }
5861 inline const ::singa::LayerProto& LayerProto::sublayers(int index) const {
5862  return sublayers_.Get(index);
5863 }
5864 inline ::singa::LayerProto* LayerProto::mutable_sublayers(int index) {
5865  return sublayers_.Mutable(index);
5866 }
5867 inline ::singa::LayerProto* LayerProto::add_sublayers() {
5868  return sublayers_.Add();
5869 }
5870 inline const ::google::protobuf::RepeatedPtrField< ::singa::LayerProto >&
5871 LayerProto::sublayers() const {
5872  return sublayers_;
5873 }
5874 inline ::google::protobuf::RepeatedPtrField< ::singa::LayerProto >*
5875 LayerProto::mutable_sublayers() {
5876  return &sublayers_;
5877 }
5878 
5879 // optional .singa.SliceProto slice_param = 32;
5880 inline bool LayerProto::has_slice_param() const {
5881  return (_has_bits_[0] & 0x00100000u) != 0;
5882 }
5883 inline void LayerProto::set_has_slice_param() {
5884  _has_bits_[0] |= 0x00100000u;
5885 }
5886 inline void LayerProto::clear_has_slice_param() {
5887  _has_bits_[0] &= ~0x00100000u;
5888 }
5889 inline void LayerProto::clear_slice_param() {
5890  if (slice_param_ != NULL) slice_param_->::singa::SliceProto::Clear();
5891  clear_has_slice_param();
5892 }
5893 inline const ::singa::SliceProto& LayerProto::slice_param() const {
5894  return slice_param_ != NULL ? *slice_param_ : *default_instance_->slice_param_;
5895 }
5896 inline ::singa::SliceProto* LayerProto::mutable_slice_param() {
5897  set_has_slice_param();
5898  if (slice_param_ == NULL) slice_param_ = new ::singa::SliceProto;
5899  return slice_param_;
5900 }
5901 inline ::singa::SliceProto* LayerProto::release_slice_param() {
5902  clear_has_slice_param();
5903  ::singa::SliceProto* temp = slice_param_;
5904  slice_param_ = NULL;
5905  return temp;
5906 }
5907 inline void LayerProto::set_allocated_slice_param(::singa::SliceProto* slice_param) {
5908  delete slice_param_;
5909  slice_param_ = slice_param;
5910  if (slice_param) {
5911  set_has_slice_param();
5912  } else {
5913  clear_has_slice_param();
5914  }
5915 }
5916 
5917 // optional .singa.SplitProto split_param = 33;
5918 inline bool LayerProto::has_split_param() const {
5919  return (_has_bits_[0] & 0x00200000u) != 0;
5920 }
5921 inline void LayerProto::set_has_split_param() {
5922  _has_bits_[0] |= 0x00200000u;
5923 }
5924 inline void LayerProto::clear_has_split_param() {
5925  _has_bits_[0] &= ~0x00200000u;
5926 }
5927 inline void LayerProto::clear_split_param() {
5928  if (split_param_ != NULL) split_param_->::singa::SplitProto::Clear();
5929  clear_has_split_param();
5930 }
5931 inline const ::singa::SplitProto& LayerProto::split_param() const {
5932  return split_param_ != NULL ? *split_param_ : *default_instance_->split_param_;
5933 }
5934 inline ::singa::SplitProto* LayerProto::mutable_split_param() {
5935  set_has_split_param();
5936  if (split_param_ == NULL) split_param_ = new ::singa::SplitProto;
5937  return split_param_;
5938 }
5939 inline ::singa::SplitProto* LayerProto::release_split_param() {
5940  clear_has_split_param();
5941  ::singa::SplitProto* temp = split_param_;
5942  split_param_ = NULL;
5943  return temp;
5944 }
5945 inline void LayerProto::set_allocated_split_param(::singa::SplitProto* split_param) {
5946  delete split_param_;
5947  split_param_ = split_param;
5948  if (split_param) {
5949  set_has_split_param();
5950  } else {
5951  clear_has_split_param();
5952  }
5953 }
5954 
5955 // optional .singa.ReLUProto relu_param = 28;
5956 inline bool LayerProto::has_relu_param() const {
5957  return (_has_bits_[0] & 0x00400000u) != 0;
5958 }
5959 inline void LayerProto::set_has_relu_param() {
5960  _has_bits_[0] |= 0x00400000u;
5961 }
5962 inline void LayerProto::clear_has_relu_param() {
5963  _has_bits_[0] &= ~0x00400000u;
5964 }
5965 inline void LayerProto::clear_relu_param() {
5966  if (relu_param_ != NULL) relu_param_->::singa::ReLUProto::Clear();
5967  clear_has_relu_param();
5968 }
5969 inline const ::singa::ReLUProto& LayerProto::relu_param() const {
5970  return relu_param_ != NULL ? *relu_param_ : *default_instance_->relu_param_;
5971 }
5972 inline ::singa::ReLUProto* LayerProto::mutable_relu_param() {
5973  set_has_relu_param();
5974  if (relu_param_ == NULL) relu_param_ = new ::singa::ReLUProto;
5975  return relu_param_;
5976 }
5977 inline ::singa::ReLUProto* LayerProto::release_relu_param() {
5978  clear_has_relu_param();
5979  ::singa::ReLUProto* temp = relu_param_;
5980  relu_param_ = NULL;
5981  return temp;
5982 }
5983 inline void LayerProto::set_allocated_relu_param(::singa::ReLUProto* relu_param) {
5984  delete relu_param_;
5985  relu_param_ = relu_param;
5986  if (relu_param) {
5987  set_has_relu_param();
5988  } else {
5989  clear_has_relu_param();
5990  }
5991 }
5992 
5993 // optional .singa.RGBImage rgbimage_param = 34;
5994 inline bool LayerProto::has_rgbimage_param() const {
5995  return (_has_bits_[0] & 0x00800000u) != 0;
5996 }
5997 inline void LayerProto::set_has_rgbimage_param() {
5998  _has_bits_[0] |= 0x00800000u;
5999 }
6000 inline void LayerProto::clear_has_rgbimage_param() {
6001  _has_bits_[0] &= ~0x00800000u;
6002 }
6003 inline void LayerProto::clear_rgbimage_param() {
6004  if (rgbimage_param_ != NULL) rgbimage_param_->::singa::RGBImage::Clear();
6005  clear_has_rgbimage_param();
6006 }
6007 inline const ::singa::RGBImage& LayerProto::rgbimage_param() const {
6008  return rgbimage_param_ != NULL ? *rgbimage_param_ : *default_instance_->rgbimage_param_;
6009 }
6010 inline ::singa::RGBImage* LayerProto::mutable_rgbimage_param() {
6011  set_has_rgbimage_param();
6012  if (rgbimage_param_ == NULL) rgbimage_param_ = new ::singa::RGBImage;
6013  return rgbimage_param_;
6014 }
6015 inline ::singa::RGBImage* LayerProto::release_rgbimage_param() {
6016  clear_has_rgbimage_param();
6017  ::singa::RGBImage* temp = rgbimage_param_;
6018  rgbimage_param_ = NULL;
6019  return temp;
6020 }
6021 inline void LayerProto::set_allocated_rgbimage_param(::singa::RGBImage* rgbimage_param) {
6022  delete rgbimage_param_;
6023  rgbimage_param_ = rgbimage_param;
6024  if (rgbimage_param) {
6025  set_has_rgbimage_param();
6026  } else {
6027  clear_has_rgbimage_param();
6028  }
6029 }
6030 
6031 // optional .singa.SoftmaxLossProto softmaxloss_param = 29;
6032 inline bool LayerProto::has_softmaxloss_param() const {
6033  return (_has_bits_[0] & 0x01000000u) != 0;
6034 }
6035 inline void LayerProto::set_has_softmaxloss_param() {
6036  _has_bits_[0] |= 0x01000000u;
6037 }
6038 inline void LayerProto::clear_has_softmaxloss_param() {
6039  _has_bits_[0] &= ~0x01000000u;
6040 }
6041 inline void LayerProto::clear_softmaxloss_param() {
6042  if (softmaxloss_param_ != NULL) softmaxloss_param_->::singa::SoftmaxLossProto::Clear();
6043  clear_has_softmaxloss_param();
6044 }
6045 inline const ::singa::SoftmaxLossProto& LayerProto::softmaxloss_param() const {
6046  return softmaxloss_param_ != NULL ? *softmaxloss_param_ : *default_instance_->softmaxloss_param_;
6047 }
6048 inline ::singa::SoftmaxLossProto* LayerProto::mutable_softmaxloss_param() {
6049  set_has_softmaxloss_param();
6050  if (softmaxloss_param_ == NULL) softmaxloss_param_ = new ::singa::SoftmaxLossProto;
6051  return softmaxloss_param_;
6052 }
6053 inline ::singa::SoftmaxLossProto* LayerProto::release_softmaxloss_param() {
6054  clear_has_softmaxloss_param();
6055  ::singa::SoftmaxLossProto* temp = softmaxloss_param_;
6056  softmaxloss_param_ = NULL;
6057  return temp;
6058 }
6059 inline void LayerProto::set_allocated_softmaxloss_param(::singa::SoftmaxLossProto* softmaxloss_param) {
6060  delete softmaxloss_param_;
6061  softmaxloss_param_ = softmaxloss_param;
6062  if (softmaxloss_param) {
6063  set_has_softmaxloss_param();
6064  } else {
6065  clear_has_softmaxloss_param();
6066  }
6067 }
6068 
6069 // optional .singa.TanhProto tanh_param = 30;
6070 inline bool LayerProto::has_tanh_param() const {
6071  return (_has_bits_[0] & 0x02000000u) != 0;
6072 }
6073 inline void LayerProto::set_has_tanh_param() {
6074  _has_bits_[0] |= 0x02000000u;
6075 }
6076 inline void LayerProto::clear_has_tanh_param() {
6077  _has_bits_[0] &= ~0x02000000u;
6078 }
6079 inline void LayerProto::clear_tanh_param() {
6080  if (tanh_param_ != NULL) tanh_param_->::singa::TanhProto::Clear();
6081  clear_has_tanh_param();
6082 }
6083 inline const ::singa::TanhProto& LayerProto::tanh_param() const {
6084  return tanh_param_ != NULL ? *tanh_param_ : *default_instance_->tanh_param_;
6085 }
6086 inline ::singa::TanhProto* LayerProto::mutable_tanh_param() {
6087  set_has_tanh_param();
6088  if (tanh_param_ == NULL) tanh_param_ = new ::singa::TanhProto;
6089  return tanh_param_;
6090 }
6091 inline ::singa::TanhProto* LayerProto::release_tanh_param() {
6092  clear_has_tanh_param();
6093  ::singa::TanhProto* temp = tanh_param_;
6094  tanh_param_ = NULL;
6095  return temp;
6096 }
6097 inline void LayerProto::set_allocated_tanh_param(::singa::TanhProto* tanh_param) {
6098  delete tanh_param_;
6099  tanh_param_ = tanh_param;
6100  if (tanh_param) {
6101  set_has_tanh_param();
6102  } else {
6103  clear_has_tanh_param();
6104  }
6105 }
6106 
6107 // -------------------------------------------------------------------
6108 
6109 // RGBImage
6110 
6111 // optional float scale = 1 [default = 1];
6112 inline bool RGBImage::has_scale() const {
6113  return (_has_bits_[0] & 0x00000001u) != 0;
6114 }
6115 inline void RGBImage::set_has_scale() {
6116  _has_bits_[0] |= 0x00000001u;
6117 }
6118 inline void RGBImage::clear_has_scale() {
6119  _has_bits_[0] &= ~0x00000001u;
6120 }
6121 inline void RGBImage::clear_scale() {
6122  scale_ = 1;
6123  clear_has_scale();
6124 }
6125 inline float RGBImage::scale() const {
6126  return scale_;
6127 }
6128 inline void RGBImage::set_scale(float value) {
6129  set_has_scale();
6130  scale_ = value;
6131 }
6132 
6133 // optional int32 cropsize = 2 [default = 0];
6134 inline bool RGBImage::has_cropsize() const {
6135  return (_has_bits_[0] & 0x00000002u) != 0;
6136 }
6137 inline void RGBImage::set_has_cropsize() {
6138  _has_bits_[0] |= 0x00000002u;
6139 }
6140 inline void RGBImage::clear_has_cropsize() {
6141  _has_bits_[0] &= ~0x00000002u;
6142 }
6143 inline void RGBImage::clear_cropsize() {
6144  cropsize_ = 0;
6145  clear_has_cropsize();
6146 }
6147 inline ::google::protobuf::int32 RGBImage::cropsize() const {
6148  return cropsize_;
6149 }
6150 inline void RGBImage::set_cropsize(::google::protobuf::int32 value) {
6151  set_has_cropsize();
6152  cropsize_ = value;
6153 }
6154 
6155 // optional bool mirror = 3 [default = false];
6156 inline bool RGBImage::has_mirror() const {
6157  return (_has_bits_[0] & 0x00000004u) != 0;
6158 }
6159 inline void RGBImage::set_has_mirror() {
6160  _has_bits_[0] |= 0x00000004u;
6161 }
6162 inline void RGBImage::clear_has_mirror() {
6163  _has_bits_[0] &= ~0x00000004u;
6164 }
6165 inline void RGBImage::clear_mirror() {
6166  mirror_ = false;
6167  clear_has_mirror();
6168 }
6169 inline bool RGBImage::mirror() const {
6170  return mirror_;
6171 }
6172 inline void RGBImage::set_mirror(bool value) {
6173  set_has_mirror();
6174  mirror_ = value;
6175 }
6176 
6177 // optional string meanfile = 4;
6178 inline bool RGBImage::has_meanfile() const {
6179  return (_has_bits_[0] & 0x00000008u) != 0;
6180 }
6181 inline void RGBImage::set_has_meanfile() {
6182  _has_bits_[0] |= 0x00000008u;
6183 }
6184 inline void RGBImage::clear_has_meanfile() {
6185  _has_bits_[0] &= ~0x00000008u;
6186 }
6187 inline void RGBImage::clear_meanfile() {
6188  if (meanfile_ != &::google::protobuf::internal::kEmptyString) {
6189  meanfile_->clear();
6190  }
6191  clear_has_meanfile();
6192 }
6193 inline const ::std::string& RGBImage::meanfile() const {
6194  return *meanfile_;
6195 }
6196 inline void RGBImage::set_meanfile(const ::std::string& value) {
6197  set_has_meanfile();
6198  if (meanfile_ == &::google::protobuf::internal::kEmptyString) {
6199  meanfile_ = new ::std::string;
6200  }
6201  meanfile_->assign(value);
6202 }
6203 inline void RGBImage::set_meanfile(const char* value) {
6204  set_has_meanfile();
6205  if (meanfile_ == &::google::protobuf::internal::kEmptyString) {
6206  meanfile_ = new ::std::string;
6207  }
6208  meanfile_->assign(value);
6209 }
6210 inline void RGBImage::set_meanfile(const char* value, size_t size) {
6211  set_has_meanfile();
6212  if (meanfile_ == &::google::protobuf::internal::kEmptyString) {
6213  meanfile_ = new ::std::string;
6214  }
6215  meanfile_->assign(reinterpret_cast<const char*>(value), size);
6216 }
6217 inline ::std::string* RGBImage::mutable_meanfile() {
6218  set_has_meanfile();
6219  if (meanfile_ == &::google::protobuf::internal::kEmptyString) {
6220  meanfile_ = new ::std::string;
6221  }
6222  return meanfile_;
6223 }
6224 inline ::std::string* RGBImage::release_meanfile() {
6225  clear_has_meanfile();
6226  if (meanfile_ == &::google::protobuf::internal::kEmptyString) {
6227  return NULL;
6228  } else {
6229  ::std::string* temp = meanfile_;
6230  meanfile_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
6231  return temp;
6232  }
6233 }
6234 inline void RGBImage::set_allocated_meanfile(::std::string* meanfile) {
6235  if (meanfile_ != &::google::protobuf::internal::kEmptyString) {
6236  delete meanfile_;
6237  }
6238  if (meanfile) {
6239  set_has_meanfile();
6240  meanfile_ = meanfile;
6241  } else {
6242  clear_has_meanfile();
6243  meanfile_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
6244  }
6245 }
6246 
6247 // -------------------------------------------------------------------
6248 
6249 // SplitProto
6250 
6251 // optional int32 num_splits = 1;
6252 inline bool SplitProto::has_num_splits() const {
6253  return (_has_bits_[0] & 0x00000001u) != 0;
6254 }
6255 inline void SplitProto::set_has_num_splits() {
6256  _has_bits_[0] |= 0x00000001u;
6257 }
6258 inline void SplitProto::clear_has_num_splits() {
6259  _has_bits_[0] &= ~0x00000001u;
6260 }
6261 inline void SplitProto::clear_num_splits() {
6262  num_splits_ = 0;
6263  clear_has_num_splits();
6264 }
6265 inline ::google::protobuf::int32 SplitProto::num_splits() const {
6266  return num_splits_;
6267 }
6268 inline void SplitProto::set_num_splits(::google::protobuf::int32 value) {
6269  set_has_num_splits();
6270  num_splits_ = value;
6271 }
6272 
6273 // -------------------------------------------------------------------
6274 
6275 // TanhProto
6276 
6277 // optional float outer_scale = 1 [default = 1];
6278 inline bool TanhProto::has_outer_scale() const {
6279  return (_has_bits_[0] & 0x00000001u) != 0;
6280 }
6281 inline void TanhProto::set_has_outer_scale() {
6282  _has_bits_[0] |= 0x00000001u;
6283 }
6284 inline void TanhProto::clear_has_outer_scale() {
6285  _has_bits_[0] &= ~0x00000001u;
6286 }
6287 inline void TanhProto::clear_outer_scale() {
6288  outer_scale_ = 1;
6289  clear_has_outer_scale();
6290 }
6291 inline float TanhProto::outer_scale() const {
6292  return outer_scale_;
6293 }
6294 inline void TanhProto::set_outer_scale(float value) {
6295  set_has_outer_scale();
6296  outer_scale_ = value;
6297 }
6298 
6299 // optional float inner_scale = 2 [default = 1];
6300 inline bool TanhProto::has_inner_scale() const {
6301  return (_has_bits_[0] & 0x00000002u) != 0;
6302 }
6303 inline void TanhProto::set_has_inner_scale() {
6304  _has_bits_[0] |= 0x00000002u;
6305 }
6306 inline void TanhProto::clear_has_inner_scale() {
6307  _has_bits_[0] &= ~0x00000002u;
6308 }
6309 inline void TanhProto::clear_inner_scale() {
6310  inner_scale_ = 1;
6311  clear_has_inner_scale();
6312 }
6313 inline float TanhProto::inner_scale() const {
6314  return inner_scale_;
6315 }
6316 inline void TanhProto::set_inner_scale(float value) {
6317  set_has_inner_scale();
6318  inner_scale_ = value;
6319 }
6320 
6321 // -------------------------------------------------------------------
6322 
6323 // SoftmaxLossProto
6324 
6325 // optional int32 topk = 1 [default = 1];
6326 inline bool SoftmaxLossProto::has_topk() const {
6327  return (_has_bits_[0] & 0x00000001u) != 0;
6328 }
6329 inline void SoftmaxLossProto::set_has_topk() {
6330  _has_bits_[0] |= 0x00000001u;
6331 }
6332 inline void SoftmaxLossProto::clear_has_topk() {
6333  _has_bits_[0] &= ~0x00000001u;
6334 }
6335 inline void SoftmaxLossProto::clear_topk() {
6336  topk_ = 1;
6337  clear_has_topk();
6338 }
6339 inline ::google::protobuf::int32 SoftmaxLossProto::topk() const {
6340  return topk_;
6341 }
6342 inline void SoftmaxLossProto::set_topk(::google::protobuf::int32 value) {
6343  set_has_topk();
6344  topk_ = value;
6345 }
6346 
6347 // optional float scale = 2 [default = 1];
6348 inline bool SoftmaxLossProto::has_scale() const {
6349  return (_has_bits_[0] & 0x00000002u) != 0;
6350 }
6351 inline void SoftmaxLossProto::set_has_scale() {
6352  _has_bits_[0] |= 0x00000002u;
6353 }
6354 inline void SoftmaxLossProto::clear_has_scale() {
6355  _has_bits_[0] &= ~0x00000002u;
6356 }
6357 inline void SoftmaxLossProto::clear_scale() {
6358  scale_ = 1;
6359  clear_has_scale();
6360 }
6361 inline float SoftmaxLossProto::scale() const {
6362  return scale_;
6363 }
6364 inline void SoftmaxLossProto::set_scale(float value) {
6365  set_has_scale();
6366  scale_ = value;
6367 }
6368 
6369 // -------------------------------------------------------------------
6370 
6371 // ConvolutionProto
6372 
6373 // optional uint32 num_filters = 1;
6374 inline bool ConvolutionProto::has_num_filters() const {
6375  return (_has_bits_[0] & 0x00000001u) != 0;
6376 }
6377 inline void ConvolutionProto::set_has_num_filters() {
6378  _has_bits_[0] |= 0x00000001u;
6379 }
6380 inline void ConvolutionProto::clear_has_num_filters() {
6381  _has_bits_[0] &= ~0x00000001u;
6382 }
6383 inline void ConvolutionProto::clear_num_filters() {
6384  num_filters_ = 0u;
6385  clear_has_num_filters();
6386 }
6387 inline ::google::protobuf::uint32 ConvolutionProto::num_filters() const {
6388  return num_filters_;
6389 }
6390 inline void ConvolutionProto::set_num_filters(::google::protobuf::uint32 value) {
6391  set_has_num_filters();
6392  num_filters_ = value;
6393 }
6394 
6395 // optional bool bias_term = 2 [default = true];
6396 inline bool ConvolutionProto::has_bias_term() const {
6397  return (_has_bits_[0] & 0x00000002u) != 0;
6398 }
6399 inline void ConvolutionProto::set_has_bias_term() {
6400  _has_bits_[0] |= 0x00000002u;
6401 }
6402 inline void ConvolutionProto::clear_has_bias_term() {
6403  _has_bits_[0] &= ~0x00000002u;
6404 }
6405 inline void ConvolutionProto::clear_bias_term() {
6406  bias_term_ = true;
6407  clear_has_bias_term();
6408 }
6409 inline bool ConvolutionProto::bias_term() const {
6410  return bias_term_;
6411 }
6412 inline void ConvolutionProto::set_bias_term(bool value) {
6413  set_has_bias_term();
6414  bias_term_ = value;
6415 }
6416 
6417 // optional uint32 pad = 3 [default = 0];
6418 inline bool ConvolutionProto::has_pad() const {
6419  return (_has_bits_[0] & 0x00000004u) != 0;
6420 }
6421 inline void ConvolutionProto::set_has_pad() {
6422  _has_bits_[0] |= 0x00000004u;
6423 }
6424 inline void ConvolutionProto::clear_has_pad() {
6425  _has_bits_[0] &= ~0x00000004u;
6426 }
6427 inline void ConvolutionProto::clear_pad() {
6428  pad_ = 0u;
6429  clear_has_pad();
6430 }
6431 inline ::google::protobuf::uint32 ConvolutionProto::pad() const {
6432  return pad_;
6433 }
6434 inline void ConvolutionProto::set_pad(::google::protobuf::uint32 value) {
6435  set_has_pad();
6436  pad_ = value;
6437 }
6438 
6439 // optional uint32 stride = 4 [default = 1];
6440 inline bool ConvolutionProto::has_stride() const {
6441  return (_has_bits_[0] & 0x00000008u) != 0;
6442 }
6443 inline void ConvolutionProto::set_has_stride() {
6444  _has_bits_[0] |= 0x00000008u;
6445 }
6446 inline void ConvolutionProto::clear_has_stride() {
6447  _has_bits_[0] &= ~0x00000008u;
6448 }
6449 inline void ConvolutionProto::clear_stride() {
6450  stride_ = 1u;
6451  clear_has_stride();
6452 }
6453 inline ::google::protobuf::uint32 ConvolutionProto::stride() const {
6454  return stride_;
6455 }
6456 inline void ConvolutionProto::set_stride(::google::protobuf::uint32 value) {
6457  set_has_stride();
6458  stride_ = value;
6459 }
6460 
6461 // required uint32 kernel = 5;
6462 inline bool ConvolutionProto::has_kernel() const {
6463  return (_has_bits_[0] & 0x00000010u) != 0;
6464 }
6465 inline void ConvolutionProto::set_has_kernel() {
6466  _has_bits_[0] |= 0x00000010u;
6467 }
6468 inline void ConvolutionProto::clear_has_kernel() {
6469  _has_bits_[0] &= ~0x00000010u;
6470 }
6471 inline void ConvolutionProto::clear_kernel() {
6472  kernel_ = 0u;
6473  clear_has_kernel();
6474 }
6475 inline ::google::protobuf::uint32 ConvolutionProto::kernel() const {
6476  return kernel_;
6477 }
6478 inline void ConvolutionProto::set_kernel(::google::protobuf::uint32 value) {
6479  set_has_kernel();
6480  kernel_ = value;
6481 }
6482 
6483 // -------------------------------------------------------------------
6484 
6485 // ConcateProto
6486 
6487 // optional int32 concate_dimension = 1;
6488 inline bool ConcateProto::has_concate_dimension() const {
6489  return (_has_bits_[0] & 0x00000001u) != 0;
6490 }
6491 inline void ConcateProto::set_has_concate_dimension() {
6492  _has_bits_[0] |= 0x00000001u;
6493 }
6494 inline void ConcateProto::clear_has_concate_dimension() {
6495  _has_bits_[0] &= ~0x00000001u;
6496 }
6497 inline void ConcateProto::clear_concate_dimension() {
6498  concate_dimension_ = 0;
6499  clear_has_concate_dimension();
6500 }
6501 inline ::google::protobuf::int32 ConcateProto::concate_dimension() const {
6502  return concate_dimension_;
6503 }
6504 inline void ConcateProto::set_concate_dimension(::google::protobuf::int32 value) {
6505  set_has_concate_dimension();
6506  concate_dimension_ = value;
6507 }
6508 
6509 // optional int32 concate_num = 2;
6510 inline bool ConcateProto::has_concate_num() const {
6511  return (_has_bits_[0] & 0x00000002u) != 0;
6512 }
6513 inline void ConcateProto::set_has_concate_num() {
6514  _has_bits_[0] |= 0x00000002u;
6515 }
6516 inline void ConcateProto::clear_has_concate_num() {
6517  _has_bits_[0] &= ~0x00000002u;
6518 }
6519 inline void ConcateProto::clear_concate_num() {
6520  concate_num_ = 0;
6521  clear_has_concate_num();
6522 }
6523 inline ::google::protobuf::int32 ConcateProto::concate_num() const {
6524  return concate_num_;
6525 }
6526 inline void ConcateProto::set_concate_num(::google::protobuf::int32 value) {
6527  set_has_concate_num();
6528  concate_num_ = value;
6529 }
6530 
6531 // -------------------------------------------------------------------
6532 
6533 // DataProto
6534 
6535 // optional string source = 1;
6536 inline bool DataProto::has_source() const {
6537  return (_has_bits_[0] & 0x00000001u) != 0;
6538 }
6539 inline void DataProto::set_has_source() {
6540  _has_bits_[0] |= 0x00000001u;
6541 }
6542 inline void DataProto::clear_has_source() {
6543  _has_bits_[0] &= ~0x00000001u;
6544 }
6545 inline void DataProto::clear_source() {
6546  if (source_ != &::google::protobuf::internal::kEmptyString) {
6547  source_->clear();
6548  }
6549  clear_has_source();
6550 }
6551 inline const ::std::string& DataProto::source() const {
6552  return *source_;
6553 }
6554 inline void DataProto::set_source(const ::std::string& value) {
6555  set_has_source();
6556  if (source_ == &::google::protobuf::internal::kEmptyString) {
6557  source_ = new ::std::string;
6558  }
6559  source_->assign(value);
6560 }
6561 inline void DataProto::set_source(const char* value) {
6562  set_has_source();
6563  if (source_ == &::google::protobuf::internal::kEmptyString) {
6564  source_ = new ::std::string;
6565  }
6566  source_->assign(value);
6567 }
6568 inline void DataProto::set_source(const char* value, size_t size) {
6569  set_has_source();
6570  if (source_ == &::google::protobuf::internal::kEmptyString) {
6571  source_ = new ::std::string;
6572  }
6573  source_->assign(reinterpret_cast<const char*>(value), size);
6574 }
6575 inline ::std::string* DataProto::mutable_source() {
6576  set_has_source();
6577  if (source_ == &::google::protobuf::internal::kEmptyString) {
6578  source_ = new ::std::string;
6579  }
6580  return source_;
6581 }
6582 inline ::std::string* DataProto::release_source() {
6583  clear_has_source();
6584  if (source_ == &::google::protobuf::internal::kEmptyString) {
6585  return NULL;
6586  } else {
6587  ::std::string* temp = source_;
6588  source_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
6589  return temp;
6590  }
6591 }
6592 inline void DataProto::set_allocated_source(::std::string* source) {
6593  if (source_ != &::google::protobuf::internal::kEmptyString) {
6594  delete source_;
6595  }
6596  if (source) {
6597  set_has_source();
6598  source_ = source;
6599  } else {
6600  clear_has_source();
6601  source_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
6602  }
6603 }
6604 
6605 // optional string path = 2;
6606 inline bool DataProto::has_path() const {
6607  return (_has_bits_[0] & 0x00000002u) != 0;
6608 }
6609 inline void DataProto::set_has_path() {
6610  _has_bits_[0] |= 0x00000002u;
6611 }
6612 inline void DataProto::clear_has_path() {
6613  _has_bits_[0] &= ~0x00000002u;
6614 }
6615 inline void DataProto::clear_path() {
6616  if (path_ != &::google::protobuf::internal::kEmptyString) {
6617  path_->clear();
6618  }
6619  clear_has_path();
6620 }
6621 inline const ::std::string& DataProto::path() const {
6622  return *path_;
6623 }
6624 inline void DataProto::set_path(const ::std::string& value) {
6625  set_has_path();
6626  if (path_ == &::google::protobuf::internal::kEmptyString) {
6627  path_ = new ::std::string;
6628  }
6629  path_->assign(value);
6630 }
6631 inline void DataProto::set_path(const char* value) {
6632  set_has_path();
6633  if (path_ == &::google::protobuf::internal::kEmptyString) {
6634  path_ = new ::std::string;
6635  }
6636  path_->assign(value);
6637 }
6638 inline void DataProto::set_path(const char* value, size_t size) {
6639  set_has_path();
6640  if (path_ == &::google::protobuf::internal::kEmptyString) {
6641  path_ = new ::std::string;
6642  }
6643  path_->assign(reinterpret_cast<const char*>(value), size);
6644 }
6645 inline ::std::string* DataProto::mutable_path() {
6646  set_has_path();
6647  if (path_ == &::google::protobuf::internal::kEmptyString) {
6648  path_ = new ::std::string;
6649  }
6650  return path_;
6651 }
6652 inline ::std::string* DataProto::release_path() {
6653  clear_has_path();
6654  if (path_ == &::google::protobuf::internal::kEmptyString) {
6655  return NULL;
6656  } else {
6657  ::std::string* temp = path_;
6658  path_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
6659  return temp;
6660  }
6661 }
6662 inline void DataProto::set_allocated_path(::std::string* path) {
6663  if (path_ != &::google::protobuf::internal::kEmptyString) {
6664  delete path_;
6665  }
6666  if (path) {
6667  set_has_path();
6668  path_ = path;
6669  } else {
6670  clear_has_path();
6671  path_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
6672  }
6673 }
6674 
6675 // optional uint32 batchsize = 4;
6676 inline bool DataProto::has_batchsize() const {
6677  return (_has_bits_[0] & 0x00000004u) != 0;
6678 }
6679 inline void DataProto::set_has_batchsize() {
6680  _has_bits_[0] |= 0x00000004u;
6681 }
6682 inline void DataProto::clear_has_batchsize() {
6683  _has_bits_[0] &= ~0x00000004u;
6684 }
6685 inline void DataProto::clear_batchsize() {
6686  batchsize_ = 0u;
6687  clear_has_batchsize();
6688 }
6689 inline ::google::protobuf::uint32 DataProto::batchsize() const {
6690  return batchsize_;
6691 }
6692 inline void DataProto::set_batchsize(::google::protobuf::uint32 value) {
6693  set_has_batchsize();
6694  batchsize_ = value;
6695 }
6696 
6697 // optional uint32 random_skip = 5 [default = 0];
6698 inline bool DataProto::has_random_skip() const {
6699  return (_has_bits_[0] & 0x00000008u) != 0;
6700 }
6701 inline void DataProto::set_has_random_skip() {
6702  _has_bits_[0] |= 0x00000008u;
6703 }
6704 inline void DataProto::clear_has_random_skip() {
6705  _has_bits_[0] &= ~0x00000008u;
6706 }
6707 inline void DataProto::clear_random_skip() {
6708  random_skip_ = 0u;
6709  clear_has_random_skip();
6710 }
6711 inline ::google::protobuf::uint32 DataProto::random_skip() const {
6712  return random_skip_;
6713 }
6714 inline void DataProto::set_random_skip(::google::protobuf::uint32 value) {
6715  set_has_random_skip();
6716  random_skip_ = value;
6717 }
6718 
6719 // -------------------------------------------------------------------
6720 
6721 // MnistProto
6722 
6723 // optional int32 kernel = 1 [default = 0];
6724 inline bool MnistProto::has_kernel() const {
6725  return (_has_bits_[0] & 0x00000001u) != 0;
6726 }
6727 inline void MnistProto::set_has_kernel() {
6728  _has_bits_[0] |= 0x00000001u;
6729 }
6730 inline void MnistProto::clear_has_kernel() {
6731  _has_bits_[0] &= ~0x00000001u;
6732 }
6733 inline void MnistProto::clear_kernel() {
6734  kernel_ = 0;
6735  clear_has_kernel();
6736 }
6737 inline ::google::protobuf::int32 MnistProto::kernel() const {
6738  return kernel_;
6739 }
6740 inline void MnistProto::set_kernel(::google::protobuf::int32 value) {
6741  set_has_kernel();
6742  kernel_ = value;
6743 }
6744 
6745 // optional float sigma = 2 [default = 0];
6746 inline bool MnistProto::has_sigma() const {
6747  return (_has_bits_[0] & 0x00000002u) != 0;
6748 }
6749 inline void MnistProto::set_has_sigma() {
6750  _has_bits_[0] |= 0x00000002u;
6751 }
6752 inline void MnistProto::clear_has_sigma() {
6753  _has_bits_[0] &= ~0x00000002u;
6754 }
6755 inline void MnistProto::clear_sigma() {
6756  sigma_ = 0;
6757  clear_has_sigma();
6758 }
6759 inline float MnistProto::sigma() const {
6760  return sigma_;
6761 }
6762 inline void MnistProto::set_sigma(float value) {
6763  set_has_sigma();
6764  sigma_ = value;
6765 }
6766 
6767 // optional float alpha = 3 [default = 0];
6768 inline bool MnistProto::has_alpha() const {
6769  return (_has_bits_[0] & 0x00000004u) != 0;
6770 }
6771 inline void MnistProto::set_has_alpha() {
6772  _has_bits_[0] |= 0x00000004u;
6773 }
6774 inline void MnistProto::clear_has_alpha() {
6775  _has_bits_[0] &= ~0x00000004u;
6776 }
6777 inline void MnistProto::clear_alpha() {
6778  alpha_ = 0;
6779  clear_has_alpha();
6780 }
6781 inline float MnistProto::alpha() const {
6782  return alpha_;
6783 }
6784 inline void MnistProto::set_alpha(float value) {
6785  set_has_alpha();
6786  alpha_ = value;
6787 }
6788 
6789 // optional float beta = 4 [default = 0];
6790 inline bool MnistProto::has_beta() const {
6791  return (_has_bits_[0] & 0x00000008u) != 0;
6792 }
6793 inline void MnistProto::set_has_beta() {
6794  _has_bits_[0] |= 0x00000008u;
6795 }
6796 inline void MnistProto::clear_has_beta() {
6797  _has_bits_[0] &= ~0x00000008u;
6798 }
6799 inline void MnistProto::clear_beta() {
6800  beta_ = 0;
6801  clear_has_beta();
6802 }
6803 inline float MnistProto::beta() const {
6804  return beta_;
6805 }
6806 inline void MnistProto::set_beta(float value) {
6807  set_has_beta();
6808  beta_ = value;
6809 }
6810 
6811 // optional float gamma = 5 [default = 0];
6812 inline bool MnistProto::has_gamma() const {
6813  return (_has_bits_[0] & 0x00000010u) != 0;
6814 }
6815 inline void MnistProto::set_has_gamma() {
6816  _has_bits_[0] |= 0x00000010u;
6817 }
6818 inline void MnistProto::clear_has_gamma() {
6819  _has_bits_[0] &= ~0x00000010u;
6820 }
6821 inline void MnistProto::clear_gamma() {
6822  gamma_ = 0;
6823  clear_has_gamma();
6824 }
6825 inline float MnistProto::gamma() const {
6826  return gamma_;
6827 }
6828 inline void MnistProto::set_gamma(float value) {
6829  set_has_gamma();
6830  gamma_ = value;
6831 }
6832 
6833 // optional int32 resize = 6 [default = 0];
6834 inline bool MnistProto::has_resize() const {
6835  return (_has_bits_[0] & 0x00000020u) != 0;
6836 }
6837 inline void MnistProto::set_has_resize() {
6838  _has_bits_[0] |= 0x00000020u;
6839 }
6840 inline void MnistProto::clear_has_resize() {
6841  _has_bits_[0] &= ~0x00000020u;
6842 }
6843 inline void MnistProto::clear_resize() {
6844  resize_ = 0;
6845  clear_has_resize();
6846 }
6847 inline ::google::protobuf::int32 MnistProto::resize() const {
6848  return resize_;
6849 }
6850 inline void MnistProto::set_resize(::google::protobuf::int32 value) {
6851  set_has_resize();
6852  resize_ = value;
6853 }
6854 
6855 // optional int32 elastic_freq = 7 [default = 0];
6856 inline bool MnistProto::has_elastic_freq() const {
6857  return (_has_bits_[0] & 0x00000040u) != 0;
6858 }
6859 inline void MnistProto::set_has_elastic_freq() {
6860  _has_bits_[0] |= 0x00000040u;
6861 }
6862 inline void MnistProto::clear_has_elastic_freq() {
6863  _has_bits_[0] &= ~0x00000040u;
6864 }
6865 inline void MnistProto::clear_elastic_freq() {
6866  elastic_freq_ = 0;
6867  clear_has_elastic_freq();
6868 }
6869 inline ::google::protobuf::int32 MnistProto::elastic_freq() const {
6870  return elastic_freq_;
6871 }
6872 inline void MnistProto::set_elastic_freq(::google::protobuf::int32 value) {
6873  set_has_elastic_freq();
6874  elastic_freq_ = value;
6875 }
6876 
6877 // optional float norm_a = 8 [default = 1];
6878 inline bool MnistProto::has_norm_a() const {
6879  return (_has_bits_[0] & 0x00000080u) != 0;
6880 }
6881 inline void MnistProto::set_has_norm_a() {
6882  _has_bits_[0] |= 0x00000080u;
6883 }
6884 inline void MnistProto::clear_has_norm_a() {
6885  _has_bits_[0] &= ~0x00000080u;
6886 }
6887 inline void MnistProto::clear_norm_a() {
6888  norm_a_ = 1;
6889  clear_has_norm_a();
6890 }
6891 inline float MnistProto::norm_a() const {
6892  return norm_a_;
6893 }
6894 inline void MnistProto::set_norm_a(float value) {
6895  set_has_norm_a();
6896  norm_a_ = value;
6897 }
6898 
6899 // optional float norm_b = 9 [default = 0];
6900 inline bool MnistProto::has_norm_b() const {
6901  return (_has_bits_[0] & 0x00000100u) != 0;
6902 }
6903 inline void MnistProto::set_has_norm_b() {
6904  _has_bits_[0] |= 0x00000100u;
6905 }
6906 inline void MnistProto::clear_has_norm_b() {
6907  _has_bits_[0] &= ~0x00000100u;
6908 }
6909 inline void MnistProto::clear_norm_b() {
6910  norm_b_ = 0;
6911  clear_has_norm_b();
6912 }
6913 inline float MnistProto::norm_b() const {
6914  return norm_b_;
6915 }
6916 inline void MnistProto::set_norm_b(float value) {
6917  set_has_norm_b();
6918  norm_b_ = value;
6919 }
6920 
6921 // -------------------------------------------------------------------
6922 
6923 // DropoutProto
6924 
6925 // optional float dropout_ratio = 1 [default = 0.5];
6926 inline bool DropoutProto::has_dropout_ratio() const {
6927  return (_has_bits_[0] & 0x00000001u) != 0;
6928 }
6929 inline void DropoutProto::set_has_dropout_ratio() {
6930  _has_bits_[0] |= 0x00000001u;
6931 }
6932 inline void DropoutProto::clear_has_dropout_ratio() {
6933  _has_bits_[0] &= ~0x00000001u;
6934 }
6935 inline void DropoutProto::clear_dropout_ratio() {
6936  dropout_ratio_ = 0.5f;
6937  clear_has_dropout_ratio();
6938 }
6939 inline float DropoutProto::dropout_ratio() const {
6940  return dropout_ratio_;
6941 }
6942 inline void DropoutProto::set_dropout_ratio(float value) {
6943  set_has_dropout_ratio();
6944  dropout_ratio_ = value;
6945 }
6946 
6947 // -------------------------------------------------------------------
6948 
6949 // InnerProductProto
6950 
6951 // optional uint32 num_output = 1;
6952 inline bool InnerProductProto::has_num_output() const {
6953  return (_has_bits_[0] & 0x00000001u) != 0;
6954 }
6955 inline void InnerProductProto::set_has_num_output() {
6956  _has_bits_[0] |= 0x00000001u;
6957 }
6958 inline void InnerProductProto::clear_has_num_output() {
6959  _has_bits_[0] &= ~0x00000001u;
6960 }
6961 inline void InnerProductProto::clear_num_output() {
6962  num_output_ = 0u;
6963  clear_has_num_output();
6964 }
6965 inline ::google::protobuf::uint32 InnerProductProto::num_output() const {
6966  return num_output_;
6967 }
6968 inline void InnerProductProto::set_num_output(::google::protobuf::uint32 value) {
6969  set_has_num_output();
6970  num_output_ = value;
6971 }
6972 
6973 // optional bool bias_term = 2 [default = true];
6974 inline bool InnerProductProto::has_bias_term() const {
6975  return (_has_bits_[0] & 0x00000002u) != 0;
6976 }
6977 inline void InnerProductProto::set_has_bias_term() {
6978  _has_bits_[0] |= 0x00000002u;
6979 }
6980 inline void InnerProductProto::clear_has_bias_term() {
6981  _has_bits_[0] &= ~0x00000002u;
6982 }
6983 inline void InnerProductProto::clear_bias_term() {
6984  bias_term_ = true;
6985  clear_has_bias_term();
6986 }
6987 inline bool InnerProductProto::bias_term() const {
6988  return bias_term_;
6989 }
6990 inline void InnerProductProto::set_bias_term(bool value) {
6991  set_has_bias_term();
6992  bias_term_ = value;
6993 }
6994 
6995 // -------------------------------------------------------------------
6996 
6997 // LRNProto
6998 
6999 // optional uint32 local_size = 1 [default = 5];
7000 inline bool LRNProto::has_local_size() const {
7001  return (_has_bits_[0] & 0x00000001u) != 0;
7002 }
7003 inline void LRNProto::set_has_local_size() {
7004  _has_bits_[0] |= 0x00000001u;
7005 }
7006 inline void LRNProto::clear_has_local_size() {
7007  _has_bits_[0] &= ~0x00000001u;
7008 }
7009 inline void LRNProto::clear_local_size() {
7010  local_size_ = 5u;
7011  clear_has_local_size();
7012 }
7013 inline ::google::protobuf::uint32 LRNProto::local_size() const {
7014  return local_size_;
7015 }
7016 inline void LRNProto::set_local_size(::google::protobuf::uint32 value) {
7017  set_has_local_size();
7018  local_size_ = value;
7019 }
7020 
7021 // optional float alpha = 2 [default = 1];
7022 inline bool LRNProto::has_alpha() const {
7023  return (_has_bits_[0] & 0x00000002u) != 0;
7024 }
7025 inline void LRNProto::set_has_alpha() {
7026  _has_bits_[0] |= 0x00000002u;
7027 }
7028 inline void LRNProto::clear_has_alpha() {
7029  _has_bits_[0] &= ~0x00000002u;
7030 }
7031 inline void LRNProto::clear_alpha() {
7032  alpha_ = 1;
7033  clear_has_alpha();
7034 }
7035 inline float LRNProto::alpha() const {
7036  return alpha_;
7037 }
7038 inline void LRNProto::set_alpha(float value) {
7039  set_has_alpha();
7040  alpha_ = value;
7041 }
7042 
7043 // optional float beta = 3 [default = 0.75];
7044 inline bool LRNProto::has_beta() const {
7045  return (_has_bits_[0] & 0x00000004u) != 0;
7046 }
7047 inline void LRNProto::set_has_beta() {
7048  _has_bits_[0] |= 0x00000004u;
7049 }
7050 inline void LRNProto::clear_has_beta() {
7051  _has_bits_[0] &= ~0x00000004u;
7052 }
7053 inline void LRNProto::clear_beta() {
7054  beta_ = 0.75f;
7055  clear_has_beta();
7056 }
7057 inline float LRNProto::beta() const {
7058  return beta_;
7059 }
7060 inline void LRNProto::set_beta(float value) {
7061  set_has_beta();
7062  beta_ = value;
7063 }
7064 
7065 // optional .singa.LRNProto.NormRegion norm_region = 4 [default = ACROSS_CHANNELS];
7066 inline bool LRNProto::has_norm_region() const {
7067  return (_has_bits_[0] & 0x00000008u) != 0;
7068 }
7069 inline void LRNProto::set_has_norm_region() {
7070  _has_bits_[0] |= 0x00000008u;
7071 }
7072 inline void LRNProto::clear_has_norm_region() {
7073  _has_bits_[0] &= ~0x00000008u;
7074 }
7075 inline void LRNProto::clear_norm_region() {
7076  norm_region_ = 0;
7077  clear_has_norm_region();
7078 }
7079 inline ::singa::LRNProto_NormRegion LRNProto::norm_region() const {
7080  return static_cast< ::singa::LRNProto_NormRegion >(norm_region_);
7081 }
7082 inline void LRNProto::set_norm_region(::singa::LRNProto_NormRegion value) {
7083  assert(::singa::LRNProto_NormRegion_IsValid(value));
7084  set_has_norm_region();
7085  norm_region_ = value;
7086 }
7087 
7088 // optional float knorm = 5 [default = 1];
7089 inline bool LRNProto::has_knorm() const {
7090  return (_has_bits_[0] & 0x00000010u) != 0;
7091 }
7092 inline void LRNProto::set_has_knorm() {
7093  _has_bits_[0] |= 0x00000010u;
7094 }
7095 inline void LRNProto::clear_has_knorm() {
7096  _has_bits_[0] &= ~0x00000010u;
7097 }
7098 inline void LRNProto::clear_knorm() {
7099  knorm_ = 1;
7100  clear_has_knorm();
7101 }
7102 inline float LRNProto::knorm() const {
7103  return knorm_;
7104 }
7105 inline void LRNProto::set_knorm(float value) {
7106  set_has_knorm();
7107  knorm_ = value;
7108 }
7109 
7110 // -------------------------------------------------------------------
7111 
7112 // PoolingProto
7113 
7114 // optional .singa.PoolingProto.PoolMethod pool = 1 [default = MAX];
7115 inline bool PoolingProto::has_pool() const {
7116  return (_has_bits_[0] & 0x00000001u) != 0;
7117 }
7118 inline void PoolingProto::set_has_pool() {
7119  _has_bits_[0] |= 0x00000001u;
7120 }
7121 inline void PoolingProto::clear_has_pool() {
7122  _has_bits_[0] &= ~0x00000001u;
7123 }
7124 inline void PoolingProto::clear_pool() {
7125  pool_ = 0;
7126  clear_has_pool();
7127 }
7128 inline ::singa::PoolingProto_PoolMethod PoolingProto::pool() const {
7129  return static_cast< ::singa::PoolingProto_PoolMethod >(pool_);
7130 }
7131 inline void PoolingProto::set_pool(::singa::PoolingProto_PoolMethod value) {
7132  assert(::singa::PoolingProto_PoolMethod_IsValid(value));
7133  set_has_pool();
7134  pool_ = value;
7135 }
7136 
7137 // required uint32 kernel = 2;
7138 inline bool PoolingProto::has_kernel() const {
7139  return (_has_bits_[0] & 0x00000002u) != 0;
7140 }
7141 inline void PoolingProto::set_has_kernel() {
7142  _has_bits_[0] |= 0x00000002u;
7143 }
7144 inline void PoolingProto::clear_has_kernel() {
7145  _has_bits_[0] &= ~0x00000002u;
7146 }
7147 inline void PoolingProto::clear_kernel() {
7148  kernel_ = 0u;
7149  clear_has_kernel();
7150 }
7151 inline ::google::protobuf::uint32 PoolingProto::kernel() const {
7152  return kernel_;
7153 }
7154 inline void PoolingProto::set_kernel(::google::protobuf::uint32 value) {
7155  set_has_kernel();
7156  kernel_ = value;
7157 }
7158 
7159 // optional uint32 pad = 4 [default = 0];
7160 inline bool PoolingProto::has_pad() const {
7161  return (_has_bits_[0] & 0x00000004u) != 0;
7162 }
7163 inline void PoolingProto::set_has_pad() {
7164  _has_bits_[0] |= 0x00000004u;
7165 }
7166 inline void PoolingProto::clear_has_pad() {
7167  _has_bits_[0] &= ~0x00000004u;
7168 }
7169 inline void PoolingProto::clear_pad() {
7170  pad_ = 0u;
7171  clear_has_pad();
7172 }
7173 inline ::google::protobuf::uint32 PoolingProto::pad() const {
7174  return pad_;
7175 }
7176 inline void PoolingProto::set_pad(::google::protobuf::uint32 value) {
7177  set_has_pad();
7178  pad_ = value;
7179 }
7180 
7181 // optional uint32 stride = 3 [default = 1];
7182 inline bool PoolingProto::has_stride() const {
7183  return (_has_bits_[0] & 0x00000008u) != 0;
7184 }
7185 inline void PoolingProto::set_has_stride() {
7186  _has_bits_[0] |= 0x00000008u;
7187 }
7188 inline void PoolingProto::clear_has_stride() {
7189  _has_bits_[0] &= ~0x00000008u;
7190 }
7191 inline void PoolingProto::clear_stride() {
7192  stride_ = 1u;
7193  clear_has_stride();
7194 }
7195 inline ::google::protobuf::uint32 PoolingProto::stride() const {
7196  return stride_;
7197 }
7198 inline void PoolingProto::set_stride(::google::protobuf::uint32 value) {
7199  set_has_stride();
7200  stride_ = value;
7201 }
7202 
7203 // -------------------------------------------------------------------
7204 
7205 // SliceProto
7206 
7207 // optional int32 slice_dimension = 1;
7208 inline bool SliceProto::has_slice_dimension() const {
7209  return (_has_bits_[0] & 0x00000001u) != 0;
7210 }
7211 inline void SliceProto::set_has_slice_dimension() {
7212  _has_bits_[0] |= 0x00000001u;
7213 }
7214 inline void SliceProto::clear_has_slice_dimension() {
7215  _has_bits_[0] &= ~0x00000001u;
7216 }
7217 inline void SliceProto::clear_slice_dimension() {
7218  slice_dimension_ = 0;
7219  clear_has_slice_dimension();
7220 }
7221 inline ::google::protobuf::int32 SliceProto::slice_dimension() const {
7222  return slice_dimension_;
7223 }
7224 inline void SliceProto::set_slice_dimension(::google::protobuf::int32 value) {
7225  set_has_slice_dimension();
7226  slice_dimension_ = value;
7227 }
7228 
7229 // optional int32 slice_num = 2;
7230 inline bool SliceProto::has_slice_num() const {
7231  return (_has_bits_[0] & 0x00000002u) != 0;
7232 }
7233 inline void SliceProto::set_has_slice_num() {
7234  _has_bits_[0] |= 0x00000002u;
7235 }
7236 inline void SliceProto::clear_has_slice_num() {
7237  _has_bits_[0] &= ~0x00000002u;
7238 }
7239 inline void SliceProto::clear_slice_num() {
7240  slice_num_ = 0;
7241  clear_has_slice_num();
7242 }
7243 inline ::google::protobuf::int32 SliceProto::slice_num() const {
7244  return slice_num_;
7245 }
7246 inline void SliceProto::set_slice_num(::google::protobuf::int32 value) {
7247  set_has_slice_num();
7248  slice_num_ = value;
7249 }
7250 
7251 // -------------------------------------------------------------------
7252 
7253 // ReLUProto
7254 
7255 // optional float negative_slope = 1 [default = 0];
7256 inline bool ReLUProto::has_negative_slope() const {
7257  return (_has_bits_[0] & 0x00000001u) != 0;
7258 }
7259 inline void ReLUProto::set_has_negative_slope() {
7260  _has_bits_[0] |= 0x00000001u;
7261 }
7262 inline void ReLUProto::clear_has_negative_slope() {
7263  _has_bits_[0] &= ~0x00000001u;
7264 }
7265 inline void ReLUProto::clear_negative_slope() {
7266  negative_slope_ = 0;
7267  clear_has_negative_slope();
7268 }
7269 inline float ReLUProto::negative_slope() const {
7270  return negative_slope_;
7271 }
7272 inline void ReLUProto::set_negative_slope(float value) {
7273  set_has_negative_slope();
7274  negative_slope_ = value;
7275 }
7276 
7277 // -------------------------------------------------------------------
7278 
7279 // Record
7280 
7281 // optional .singa.Record.Type type = 1 [default = kSingleLabelImage];
7282 inline bool Record::has_type() const {
7283  return (_has_bits_[0] & 0x00000001u) != 0;
7284 }
7285 inline void Record::set_has_type() {
7286  _has_bits_[0] |= 0x00000001u;
7287 }
7288 inline void Record::clear_has_type() {
7289  _has_bits_[0] &= ~0x00000001u;
7290 }
7291 inline void Record::clear_type() {
7292  type_ = 0;
7293  clear_has_type();
7294 }
7295 inline ::singa::Record_Type Record::type() const {
7296  return static_cast< ::singa::Record_Type >(type_);
7297 }
7298 inline void Record::set_type(::singa::Record_Type value) {
7299  assert(::singa::Record_Type_IsValid(value));
7300  set_has_type();
7301  type_ = value;
7302 }
7303 
7304 // optional .singa.SingleLabelImageRecord image = 2;
7305 inline bool Record::has_image() const {
7306  return (_has_bits_[0] & 0x00000002u) != 0;
7307 }
7308 inline void Record::set_has_image() {
7309  _has_bits_[0] |= 0x00000002u;
7310 }
7311 inline void Record::clear_has_image() {
7312  _has_bits_[0] &= ~0x00000002u;
7313 }
7314 inline void Record::clear_image() {
7315  if (image_ != NULL) image_->::singa::SingleLabelImageRecord::Clear();
7316  clear_has_image();
7317 }
7318 inline const ::singa::SingleLabelImageRecord& Record::image() const {
7319  return image_ != NULL ? *image_ : *default_instance_->image_;
7320 }
7321 inline ::singa::SingleLabelImageRecord* Record::mutable_image() {
7322  set_has_image();
7323  if (image_ == NULL) image_ = new ::singa::SingleLabelImageRecord;
7324  return image_;
7325 }
7326 inline ::singa::SingleLabelImageRecord* Record::release_image() {
7327  clear_has_image();
7328  ::singa::SingleLabelImageRecord* temp = image_;
7329  image_ = NULL;
7330  return temp;
7331 }
7332 inline void Record::set_allocated_image(::singa::SingleLabelImageRecord* image) {
7333  delete image_;
7334  image_ = image;
7335  if (image) {
7336  set_has_image();
7337  } else {
7338  clear_has_image();
7339  }
7340 }
7341 
7342 // -------------------------------------------------------------------
7343 
7344 // Datum
7345 
7346 // optional int32 channels = 1;
7347 inline bool Datum::has_channels() const {
7348  return (_has_bits_[0] & 0x00000001u) != 0;
7349 }
7350 inline void Datum::set_has_channels() {
7351  _has_bits_[0] |= 0x00000001u;
7352 }
7353 inline void Datum::clear_has_channels() {
7354  _has_bits_[0] &= ~0x00000001u;
7355 }
7356 inline void Datum::clear_channels() {
7357  channels_ = 0;
7358  clear_has_channels();
7359 }
7360 inline ::google::protobuf::int32 Datum::channels() const {
7361  return channels_;
7362 }
7363 inline void Datum::set_channels(::google::protobuf::int32 value) {
7364  set_has_channels();
7365  channels_ = value;
7366 }
7367 
7368 // optional int32 height = 2;
7369 inline bool Datum::has_height() const {
7370  return (_has_bits_[0] & 0x00000002u) != 0;
7371 }
7372 inline void Datum::set_has_height() {
7373  _has_bits_[0] |= 0x00000002u;
7374 }
7375 inline void Datum::clear_has_height() {
7376  _has_bits_[0] &= ~0x00000002u;
7377 }
7378 inline void Datum::clear_height() {
7379  height_ = 0;
7380  clear_has_height();
7381 }
7382 inline ::google::protobuf::int32 Datum::height() const {
7383  return height_;
7384 }
7385 inline void Datum::set_height(::google::protobuf::int32 value) {
7386  set_has_height();
7387  height_ = value;
7388 }
7389 
7390 // optional int32 width = 3;
7391 inline bool Datum::has_width() const {
7392  return (_has_bits_[0] & 0x00000004u) != 0;
7393 }
7394 inline void Datum::set_has_width() {
7395  _has_bits_[0] |= 0x00000004u;
7396 }
7397 inline void Datum::clear_has_width() {
7398  _has_bits_[0] &= ~0x00000004u;
7399 }
7400 inline void Datum::clear_width() {
7401  width_ = 0;
7402  clear_has_width();
7403 }
7404 inline ::google::protobuf::int32 Datum::width() const {
7405  return width_;
7406 }
7407 inline void Datum::set_width(::google::protobuf::int32 value) {
7408  set_has_width();
7409  width_ = value;
7410 }
7411 
7412 // optional bytes data = 4;
7413 inline bool Datum::has_data() const {
7414  return (_has_bits_[0] & 0x00000008u) != 0;
7415 }
7416 inline void Datum::set_has_data() {
7417  _has_bits_[0] |= 0x00000008u;
7418 }
7419 inline void Datum::clear_has_data() {
7420  _has_bits_[0] &= ~0x00000008u;
7421 }
7422 inline void Datum::clear_data() {
7423  if (data_ != &::google::protobuf::internal::kEmptyString) {
7424  data_->clear();
7425  }
7426  clear_has_data();
7427 }
7428 inline const ::std::string& Datum::data() const {
7429  return *data_;
7430 }
7431 inline void Datum::set_data(const ::std::string& value) {
7432  set_has_data();
7433  if (data_ == &::google::protobuf::internal::kEmptyString) {
7434  data_ = new ::std::string;
7435  }
7436  data_->assign(value);
7437 }
7438 inline void Datum::set_data(const char* value) {
7439  set_has_data();
7440  if (data_ == &::google::protobuf::internal::kEmptyString) {
7441  data_ = new ::std::string;
7442  }
7443  data_->assign(value);
7444 }
7445 inline void Datum::set_data(const void* value, size_t size) {
7446  set_has_data();
7447  if (data_ == &::google::protobuf::internal::kEmptyString) {
7448  data_ = new ::std::string;
7449  }
7450  data_->assign(reinterpret_cast<const char*>(value), size);
7451 }
7452 inline ::std::string* Datum::mutable_data() {
7453  set_has_data();
7454  if (data_ == &::google::protobuf::internal::kEmptyString) {
7455  data_ = new ::std::string;
7456  }
7457  return data_;
7458 }
7459 inline ::std::string* Datum::release_data() {
7460  clear_has_data();
7461  if (data_ == &::google::protobuf::internal::kEmptyString) {
7462  return NULL;
7463  } else {
7464  ::std::string* temp = data_;
7465  data_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
7466  return temp;
7467  }
7468 }
7469 inline void Datum::set_allocated_data(::std::string* data) {
7470  if (data_ != &::google::protobuf::internal::kEmptyString) {
7471  delete data_;
7472  }
7473  if (data) {
7474  set_has_data();
7475  data_ = data;
7476  } else {
7477  clear_has_data();
7478  data_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
7479  }
7480 }
7481 
7482 // optional int32 label = 5;
7483 inline bool Datum::has_label() const {
7484  return (_has_bits_[0] & 0x00000010u) != 0;
7485 }
7486 inline void Datum::set_has_label() {
7487  _has_bits_[0] |= 0x00000010u;
7488 }
7489 inline void Datum::clear_has_label() {
7490  _has_bits_[0] &= ~0x00000010u;
7491 }
7492 inline void Datum::clear_label() {
7493  label_ = 0;
7494  clear_has_label();
7495 }
7496 inline ::google::protobuf::int32 Datum::label() const {
7497  return label_;
7498 }
7499 inline void Datum::set_label(::google::protobuf::int32 value) {
7500  set_has_label();
7501  label_ = value;
7502 }
7503 
7504 // repeated float float_data = 6;
7505 inline int Datum::float_data_size() const {
7506  return float_data_.size();
7507 }
7508 inline void Datum::clear_float_data() {
7509  float_data_.Clear();
7510 }
7511 inline float Datum::float_data(int index) const {
7512  return float_data_.Get(index);
7513 }
7514 inline void Datum::set_float_data(int index, float value) {
7515  float_data_.Set(index, value);
7516 }
7517 inline void Datum::add_float_data(float value) {
7518  float_data_.Add(value);
7519 }
7520 inline const ::google::protobuf::RepeatedField< float >&
7521 Datum::float_data() const {
7522  return float_data_;
7523 }
7524 inline ::google::protobuf::RepeatedField< float >*
7525 Datum::mutable_float_data() {
7526  return &float_data_;
7527 }
7528 
7529 // optional bool encoded = 7 [default = false];
7530 inline bool Datum::has_encoded() const {
7531  return (_has_bits_[0] & 0x00000040u) != 0;
7532 }
7533 inline void Datum::set_has_encoded() {
7534  _has_bits_[0] |= 0x00000040u;
7535 }
7536 inline void Datum::clear_has_encoded() {
7537  _has_bits_[0] &= ~0x00000040u;
7538 }
7539 inline void Datum::clear_encoded() {
7540  encoded_ = false;
7541  clear_has_encoded();
7542 }
7543 inline bool Datum::encoded() const {
7544  return encoded_;
7545 }
7546 inline void Datum::set_encoded(bool value) {
7547  set_has_encoded();
7548  encoded_ = value;
7549 }
7550 
7551 // -------------------------------------------------------------------
7552 
7553 // SingleLabelImageRecord
7554 
7555 // repeated int32 shape = 1;
7556 inline int SingleLabelImageRecord::shape_size() const {
7557  return shape_.size();
7558 }
7559 inline void SingleLabelImageRecord::clear_shape() {
7560  shape_.Clear();
7561 }
7562 inline ::google::protobuf::int32 SingleLabelImageRecord::shape(int index) const {
7563  return shape_.Get(index);
7564 }
7565 inline void SingleLabelImageRecord::set_shape(int index, ::google::protobuf::int32 value) {
7566  shape_.Set(index, value);
7567 }
7568 inline void SingleLabelImageRecord::add_shape(::google::protobuf::int32 value) {
7569  shape_.Add(value);
7570 }
7571 inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
7572 SingleLabelImageRecord::shape() const {
7573  return shape_;
7574 }
7575 inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
7576 SingleLabelImageRecord::mutable_shape() {
7577  return &shape_;
7578 }
7579 
7580 // optional int32 label = 2;
7581 inline bool SingleLabelImageRecord::has_label() const {
7582  return (_has_bits_[0] & 0x00000002u) != 0;
7583 }
7584 inline void SingleLabelImageRecord::set_has_label() {
7585  _has_bits_[0] |= 0x00000002u;
7586 }
7587 inline void SingleLabelImageRecord::clear_has_label() {
7588  _has_bits_[0] &= ~0x00000002u;
7589 }
7590 inline void SingleLabelImageRecord::clear_label() {
7591  label_ = 0;
7592  clear_has_label();
7593 }
7594 inline ::google::protobuf::int32 SingleLabelImageRecord::label() const {
7595  return label_;
7596 }
7597 inline void SingleLabelImageRecord::set_label(::google::protobuf::int32 value) {
7598  set_has_label();
7599  label_ = value;
7600 }
7601 
7602 // optional bytes pixel = 3;
7603 inline bool SingleLabelImageRecord::has_pixel() const {
7604  return (_has_bits_[0] & 0x00000004u) != 0;
7605 }
7606 inline void SingleLabelImageRecord::set_has_pixel() {
7607  _has_bits_[0] |= 0x00000004u;
7608 }
7609 inline void SingleLabelImageRecord::clear_has_pixel() {
7610  _has_bits_[0] &= ~0x00000004u;
7611 }
7612 inline void SingleLabelImageRecord::clear_pixel() {
7613  if (pixel_ != &::google::protobuf::internal::kEmptyString) {
7614  pixel_->clear();
7615  }
7616  clear_has_pixel();
7617 }
7618 inline const ::std::string& SingleLabelImageRecord::pixel() const {
7619  return *pixel_;
7620 }
7621 inline void SingleLabelImageRecord::set_pixel(const ::std::string& value) {
7622  set_has_pixel();
7623  if (pixel_ == &::google::protobuf::internal::kEmptyString) {
7624  pixel_ = new ::std::string;
7625  }
7626  pixel_->assign(value);
7627 }
7628 inline void SingleLabelImageRecord::set_pixel(const char* value) {
7629  set_has_pixel();
7630  if (pixel_ == &::google::protobuf::internal::kEmptyString) {
7631  pixel_ = new ::std::string;
7632  }
7633  pixel_->assign(value);
7634 }
7635 inline void SingleLabelImageRecord::set_pixel(const void* value, size_t size) {
7636  set_has_pixel();
7637  if (pixel_ == &::google::protobuf::internal::kEmptyString) {
7638  pixel_ = new ::std::string;
7639  }
7640  pixel_->assign(reinterpret_cast<const char*>(value), size);
7641 }
7642 inline ::std::string* SingleLabelImageRecord::mutable_pixel() {
7643  set_has_pixel();
7644  if (pixel_ == &::google::protobuf::internal::kEmptyString) {
7645  pixel_ = new ::std::string;
7646  }
7647  return pixel_;
7648 }
7649 inline ::std::string* SingleLabelImageRecord::release_pixel() {
7650  clear_has_pixel();
7651  if (pixel_ == &::google::protobuf::internal::kEmptyString) {
7652  return NULL;
7653  } else {
7654  ::std::string* temp = pixel_;
7655  pixel_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
7656  return temp;
7657  }
7658 }
7659 inline void SingleLabelImageRecord::set_allocated_pixel(::std::string* pixel) {
7660  if (pixel_ != &::google::protobuf::internal::kEmptyString) {
7661  delete pixel_;
7662  }
7663  if (pixel) {
7664  set_has_pixel();
7665  pixel_ = pixel;
7666  } else {
7667  clear_has_pixel();
7668  pixel_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
7669  }
7670 }
7671 
7672 // repeated float data = 4;
7673 inline int SingleLabelImageRecord::data_size() const {
7674  return data_.size();
7675 }
7676 inline void SingleLabelImageRecord::clear_data() {
7677  data_.Clear();
7678 }
7679 inline float SingleLabelImageRecord::data(int index) const {
7680  return data_.Get(index);
7681 }
7682 inline void SingleLabelImageRecord::set_data(int index, float value) {
7683  data_.Set(index, value);
7684 }
7685 inline void SingleLabelImageRecord::add_data(float value) {
7686  data_.Add(value);
7687 }
7688 inline const ::google::protobuf::RepeatedField< float >&
7689 SingleLabelImageRecord::data() const {
7690  return data_;
7691 }
7692 inline ::google::protobuf::RepeatedField< float >*
7693 SingleLabelImageRecord::mutable_data() {
7694  return &data_;
7695 }
7696 
7697 // -------------------------------------------------------------------
7698 
7699 // UpdaterProto
7700 
7701 // optional float momentum = 4 [default = 0];
7702 inline bool UpdaterProto::has_momentum() const {
7703  return (_has_bits_[0] & 0x00000001u) != 0;
7704 }
7705 inline void UpdaterProto::set_has_momentum() {
7706  _has_bits_[0] |= 0x00000001u;
7707 }
7708 inline void UpdaterProto::clear_has_momentum() {
7709  _has_bits_[0] &= ~0x00000001u;
7710 }
7711 inline void UpdaterProto::clear_momentum() {
7712  momentum_ = 0;
7713  clear_has_momentum();
7714 }
7715 inline float UpdaterProto::momentum() const {
7716  return momentum_;
7717 }
7718 inline void UpdaterProto::set_momentum(float value) {
7719  set_has_momentum();
7720  momentum_ = value;
7721 }
7722 
7723 // optional float weight_decay = 5 [default = 0];
7724 inline bool UpdaterProto::has_weight_decay() const {
7725  return (_has_bits_[0] & 0x00000002u) != 0;
7726 }
7727 inline void UpdaterProto::set_has_weight_decay() {
7728  _has_bits_[0] |= 0x00000002u;
7729 }
7730 inline void UpdaterProto::clear_has_weight_decay() {
7731  _has_bits_[0] &= ~0x00000002u;
7732 }
7733 inline void UpdaterProto::clear_weight_decay() {
7734  weight_decay_ = 0;
7735  clear_has_weight_decay();
7736 }
7737 inline float UpdaterProto::weight_decay() const {
7738  return weight_decay_;
7739 }
7740 inline void UpdaterProto::set_weight_decay(float value) {
7741  set_has_weight_decay();
7742  weight_decay_ = value;
7743 }
7744 
7745 // optional float gamma = 6 [default = 1];
7746 inline bool UpdaterProto::has_gamma() const {
7747  return (_has_bits_[0] & 0x00000004u) != 0;
7748 }
7749 inline void UpdaterProto::set_has_gamma() {
7750  _has_bits_[0] |= 0x00000004u;
7751 }
7752 inline void UpdaterProto::clear_has_gamma() {
7753  _has_bits_[0] &= ~0x00000004u;
7754 }
7755 inline void UpdaterProto::clear_gamma() {
7756  gamma_ = 1;
7757  clear_has_gamma();
7758 }
7759 inline float UpdaterProto::gamma() const {
7760  return gamma_;
7761 }
7762 inline void UpdaterProto::set_gamma(float value) {
7763  set_has_gamma();
7764  gamma_ = value;
7765 }
7766 
7767 // optional float pow = 7 [default = 0];
7768 inline bool UpdaterProto::has_pow() const {
7769  return (_has_bits_[0] & 0x00000008u) != 0;
7770 }
7771 inline void UpdaterProto::set_has_pow() {
7772  _has_bits_[0] |= 0x00000008u;
7773 }
7774 inline void UpdaterProto::clear_has_pow() {
7775  _has_bits_[0] &= ~0x00000008u;
7776 }
7777 inline void UpdaterProto::clear_pow() {
7778  pow_ = 0;
7779  clear_has_pow();
7780 }
7781 inline float UpdaterProto::pow() const {
7782  return pow_;
7783 }
7784 inline void UpdaterProto::set_pow(float value) {
7785  set_has_pow();
7786  pow_ = value;
7787 }
7788 
7789 // optional float delta = 8 [default = 1e-07];
7790 inline bool UpdaterProto::has_delta() const {
7791  return (_has_bits_[0] & 0x00000010u) != 0;
7792 }
7793 inline void UpdaterProto::set_has_delta() {
7794  _has_bits_[0] |= 0x00000010u;
7795 }
7796 inline void UpdaterProto::clear_has_delta() {
7797  _has_bits_[0] &= ~0x00000010u;
7798 }
7799 inline void UpdaterProto::clear_delta() {
7800  delta_ = 1e-07f;
7801  clear_has_delta();
7802 }
7803 inline float UpdaterProto::delta() const {
7804  return delta_;
7805 }
7806 inline void UpdaterProto::set_delta(float value) {
7807  set_has_delta();
7808  delta_ = value;
7809 }
7810 
7811 // optional float rho = 9 [default = 0.9];
7812 inline bool UpdaterProto::has_rho() const {
7813  return (_has_bits_[0] & 0x00000020u) != 0;
7814 }
7815 inline void UpdaterProto::set_has_rho() {
7816  _has_bits_[0] |= 0x00000020u;
7817 }
7818 inline void UpdaterProto::clear_has_rho() {
7819  _has_bits_[0] &= ~0x00000020u;
7820 }
7821 inline void UpdaterProto::clear_rho() {
7822  rho_ = 0.9f;
7823  clear_has_rho();
7824 }
7825 inline float UpdaterProto::rho() const {
7826  return rho_;
7827 }
7828 inline void UpdaterProto::set_rho(float value) {
7829  set_has_rho();
7830  rho_ = value;
7831 }
7832 
7833 // optional float base_learning_rate = 12;
7834 inline bool UpdaterProto::has_base_learning_rate() const {
7835  return (_has_bits_[0] & 0x00000040u) != 0;
7836 }
7837 inline void UpdaterProto::set_has_base_learning_rate() {
7838  _has_bits_[0] |= 0x00000040u;
7839 }
7840 inline void UpdaterProto::clear_has_base_learning_rate() {
7841  _has_bits_[0] &= ~0x00000040u;
7842 }
7843 inline void UpdaterProto::clear_base_learning_rate() {
7844  base_learning_rate_ = 0;
7845  clear_has_base_learning_rate();
7846 }
7847 inline float UpdaterProto::base_learning_rate() const {
7848  return base_learning_rate_;
7849 }
7850 inline void UpdaterProto::set_base_learning_rate(float value) {
7851  set_has_base_learning_rate();
7852  base_learning_rate_ = value;
7853 }
7854 
7855 // optional float final_learning_rate = 13;
7856 inline bool UpdaterProto::has_final_learning_rate() const {
7857  return (_has_bits_[0] & 0x00000080u) != 0;
7858 }
7859 inline void UpdaterProto::set_has_final_learning_rate() {
7860  _has_bits_[0] |= 0x00000080u;
7861 }
7862 inline void UpdaterProto::clear_has_final_learning_rate() {
7863  _has_bits_[0] &= ~0x00000080u;
7864 }
7865 inline void UpdaterProto::clear_final_learning_rate() {
7866  final_learning_rate_ = 0;
7867  clear_has_final_learning_rate();
7868 }
7869 inline float UpdaterProto::final_learning_rate() const {
7870  return final_learning_rate_;
7871 }
7872 inline void UpdaterProto::set_final_learning_rate(float value) {
7873  set_has_final_learning_rate();
7874  final_learning_rate_ = value;
7875 }
7876 
7877 // optional int32 learning_rate_change_frequency = 14;
7878 inline bool UpdaterProto::has_learning_rate_change_frequency() const {
7879  return (_has_bits_[0] & 0x00000100u) != 0;
7880 }
7881 inline void UpdaterProto::set_has_learning_rate_change_frequency() {
7882  _has_bits_[0] |= 0x00000100u;
7883 }
7884 inline void UpdaterProto::clear_has_learning_rate_change_frequency() {
7885  _has_bits_[0] &= ~0x00000100u;
7886 }
7887 inline void UpdaterProto::clear_learning_rate_change_frequency() {
7888  learning_rate_change_frequency_ = 0;
7889  clear_has_learning_rate_change_frequency();
7890 }
7891 inline ::google::protobuf::int32 UpdaterProto::learning_rate_change_frequency() const {
7892  return learning_rate_change_frequency_;
7893 }
7894 inline void UpdaterProto::set_learning_rate_change_frequency(::google::protobuf::int32 value) {
7895  set_has_learning_rate_change_frequency();
7896  learning_rate_change_frequency_ = value;
7897 }
7898 
7899 // optional .singa.UpdaterProto.ChangeProto learning_rate_change_method = 16 [default = kFixed];
7900 inline bool UpdaterProto::has_learning_rate_change_method() const {
7901  return (_has_bits_[0] & 0x00000200u) != 0;
7902 }
7903 inline void UpdaterProto::set_has_learning_rate_change_method() {
7904  _has_bits_[0] |= 0x00000200u;
7905 }
7906 inline void UpdaterProto::clear_has_learning_rate_change_method() {
7907  _has_bits_[0] &= ~0x00000200u;
7908 }
7909 inline void UpdaterProto::clear_learning_rate_change_method() {
7910  learning_rate_change_method_ = 0;
7911  clear_has_learning_rate_change_method();
7912 }
7913 inline ::singa::UpdaterProto_ChangeProto UpdaterProto::learning_rate_change_method() const {
7914  return static_cast< ::singa::UpdaterProto_ChangeProto >(learning_rate_change_method_);
7915 }
7916 inline void UpdaterProto::set_learning_rate_change_method(::singa::UpdaterProto_ChangeProto value) {
7917  assert(::singa::UpdaterProto_ChangeProto_IsValid(value));
7918  set_has_learning_rate_change_method();
7919  learning_rate_change_method_ = value;
7920 }
7921 
7922 // optional int32 sync_frequency = 17 [default = 1];
7923 inline bool UpdaterProto::has_sync_frequency() const {
7924  return (_has_bits_[0] & 0x00000400u) != 0;
7925 }
7926 inline void UpdaterProto::set_has_sync_frequency() {
7927  _has_bits_[0] |= 0x00000400u;
7928 }
7929 inline void UpdaterProto::clear_has_sync_frequency() {
7930  _has_bits_[0] &= ~0x00000400u;
7931 }
7932 inline void UpdaterProto::clear_sync_frequency() {
7933  sync_frequency_ = 1;
7934  clear_has_sync_frequency();
7935 }
7936 inline ::google::protobuf::int32 UpdaterProto::sync_frequency() const {
7937  return sync_frequency_;
7938 }
7939 inline void UpdaterProto::set_sync_frequency(::google::protobuf::int32 value) {
7940  set_has_sync_frequency();
7941  sync_frequency_ = value;
7942 }
7943 
7944 // optional float moving_rate = 26 [default = 0];
7945 inline bool UpdaterProto::has_moving_rate() const {
7946  return (_has_bits_[0] & 0x00000800u) != 0;
7947 }
7948 inline void UpdaterProto::set_has_moving_rate() {
7949  _has_bits_[0] |= 0x00000800u;
7950 }
7951 inline void UpdaterProto::clear_has_moving_rate() {
7952  _has_bits_[0] &= ~0x00000800u;
7953 }
7954 inline void UpdaterProto::clear_moving_rate() {
7955  moving_rate_ = 0;
7956  clear_has_moving_rate();
7957 }
7958 inline float UpdaterProto::moving_rate() const {
7959  return moving_rate_;
7960 }
7961 inline void UpdaterProto::set_moving_rate(float value) {
7962  set_has_moving_rate();
7963  moving_rate_ = value;
7964 }
7965 
7966 // optional string param_type = 27 [default = "Param"];
7967 inline bool UpdaterProto::has_param_type() const {
7968  return (_has_bits_[0] & 0x00001000u) != 0;
7969 }
7970 inline void UpdaterProto::set_has_param_type() {
7971  _has_bits_[0] |= 0x00001000u;
7972 }
7973 inline void UpdaterProto::clear_has_param_type() {
7974  _has_bits_[0] &= ~0x00001000u;
7975 }
7976 inline void UpdaterProto::clear_param_type() {
7977  if (param_type_ != _default_param_type_) {
7978  param_type_->assign(*_default_param_type_);
7979  }
7980  clear_has_param_type();
7981 }
7982 inline const ::std::string& UpdaterProto::param_type() const {
7983  return *param_type_;
7984 }
7985 inline void UpdaterProto::set_param_type(const ::std::string& value) {
7986  set_has_param_type();
7987  if (param_type_ == _default_param_type_) {
7988  param_type_ = new ::std::string;
7989  }
7990  param_type_->assign(value);
7991 }
7992 inline void UpdaterProto::set_param_type(const char* value) {
7993  set_has_param_type();
7994  if (param_type_ == _default_param_type_) {
7995  param_type_ = new ::std::string;
7996  }
7997  param_type_->assign(value);
7998 }
7999 inline void UpdaterProto::set_param_type(const char* value, size_t size) {
8000  set_has_param_type();
8001  if (param_type_ == _default_param_type_) {
8002  param_type_ = new ::std::string;
8003  }
8004  param_type_->assign(reinterpret_cast<const char*>(value), size);
8005 }
8006 inline ::std::string* UpdaterProto::mutable_param_type() {
8007  set_has_param_type();
8008  if (param_type_ == _default_param_type_) {
8009  param_type_ = new ::std::string(*_default_param_type_);
8010  }
8011  return param_type_;
8012 }
8013 inline ::std::string* UpdaterProto::release_param_type() {
8014  clear_has_param_type();
8015  if (param_type_ == _default_param_type_) {
8016  return NULL;
8017  } else {
8018  ::std::string* temp = param_type_;
8019  param_type_ = const_cast< ::std::string*>(_default_param_type_);
8020  return temp;
8021  }
8022 }
8023 inline void UpdaterProto::set_allocated_param_type(::std::string* param_type) {
8024  if (param_type_ != _default_param_type_) {
8025  delete param_type_;
8026  }
8027  if (param_type) {
8028  set_has_param_type();
8029  param_type_ = param_type;
8030  } else {
8031  clear_has_param_type();
8032  param_type_ = const_cast< ::std::string*>(_default_param_type_);
8033  }
8034 }
8035 
8036 // repeated int32 step = 28;
8037 inline int UpdaterProto::step_size() const {
8038  return step_.size();
8039 }
8040 inline void UpdaterProto::clear_step() {
8041  step_.Clear();
8042 }
8043 inline ::google::protobuf::int32 UpdaterProto::step(int index) const {
8044  return step_.Get(index);
8045 }
8046 inline void UpdaterProto::set_step(int index, ::google::protobuf::int32 value) {
8047  step_.Set(index, value);
8048 }
8049 inline void UpdaterProto::add_step(::google::protobuf::int32 value) {
8050  step_.Add(value);
8051 }
8052 inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
8053 UpdaterProto::step() const {
8054  return step_;
8055 }
8056 inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
8057 UpdaterProto::mutable_step() {
8058  return &step_;
8059 }
8060 
8061 // repeated float step_lr = 29;
8062 inline int UpdaterProto::step_lr_size() const {
8063  return step_lr_.size();
8064 }
8065 inline void UpdaterProto::clear_step_lr() {
8066  step_lr_.Clear();
8067 }
8068 inline float UpdaterProto::step_lr(int index) const {
8069  return step_lr_.Get(index);
8070 }
8071 inline void UpdaterProto::set_step_lr(int index, float value) {
8072  step_lr_.Set(index, value);
8073 }
8074 inline void UpdaterProto::add_step_lr(float value) {
8075  step_lr_.Add(value);
8076 }
8077 inline const ::google::protobuf::RepeatedField< float >&
8078 UpdaterProto::step_lr() const {
8079  return step_lr_;
8080 }
8081 inline ::google::protobuf::RepeatedField< float >*
8082 UpdaterProto::mutable_step_lr() {
8083  return &step_lr_;
8084 }
8085 
8086 // -------------------------------------------------------------------
8087 
8088 // BlobProto
8089 
8090 // optional int32 num = 1 [default = 0];
8091 inline bool BlobProto::has_num() const {
8092  return (_has_bits_[0] & 0x00000001u) != 0;
8093 }
8094 inline void BlobProto::set_has_num() {
8095  _has_bits_[0] |= 0x00000001u;
8096 }
8097 inline void BlobProto::clear_has_num() {
8098  _has_bits_[0] &= ~0x00000001u;
8099 }
8100 inline void BlobProto::clear_num() {
8101  num_ = 0;
8102  clear_has_num();
8103 }
8104 inline ::google::protobuf::int32 BlobProto::num() const {
8105  return num_;
8106 }
8107 inline void BlobProto::set_num(::google::protobuf::int32 value) {
8108  set_has_num();
8109  num_ = value;
8110 }
8111 
8112 // optional int32 channels = 2 [default = 0];
8113 inline bool BlobProto::has_channels() const {
8114  return (_has_bits_[0] & 0x00000002u) != 0;
8115 }
8116 inline void BlobProto::set_has_channels() {
8117  _has_bits_[0] |= 0x00000002u;
8118 }
8119 inline void BlobProto::clear_has_channels() {
8120  _has_bits_[0] &= ~0x00000002u;
8121 }
8122 inline void BlobProto::clear_channels() {
8123  channels_ = 0;
8124  clear_has_channels();
8125 }
8126 inline ::google::protobuf::int32 BlobProto::channels() const {
8127  return channels_;
8128 }
8129 inline void BlobProto::set_channels(::google::protobuf::int32 value) {
8130  set_has_channels();
8131  channels_ = value;
8132 }
8133 
8134 // optional int32 height = 3 [default = 0];
8135 inline bool BlobProto::has_height() const {
8136  return (_has_bits_[0] & 0x00000004u) != 0;
8137 }
8138 inline void BlobProto::set_has_height() {
8139  _has_bits_[0] |= 0x00000004u;
8140 }
8141 inline void BlobProto::clear_has_height() {
8142  _has_bits_[0] &= ~0x00000004u;
8143 }
8144 inline void BlobProto::clear_height() {
8145  height_ = 0;
8146  clear_has_height();
8147 }
8148 inline ::google::protobuf::int32 BlobProto::height() const {
8149  return height_;
8150 }
8151 inline void BlobProto::set_height(::google::protobuf::int32 value) {
8152  set_has_height();
8153  height_ = value;
8154 }
8155 
8156 // optional int32 width = 4 [default = 0];
8157 inline bool BlobProto::has_width() const {
8158  return (_has_bits_[0] & 0x00000008u) != 0;
8159 }
8160 inline void BlobProto::set_has_width() {
8161  _has_bits_[0] |= 0x00000008u;
8162 }
8163 inline void BlobProto::clear_has_width() {
8164  _has_bits_[0] &= ~0x00000008u;
8165 }
8166 inline void BlobProto::clear_width() {
8167  width_ = 0;
8168  clear_has_width();
8169 }
8170 inline ::google::protobuf::int32 BlobProto::width() const {
8171  return width_;
8172 }
8173 inline void BlobProto::set_width(::google::protobuf::int32 value) {
8174  set_has_width();
8175  width_ = value;
8176 }
8177 
8178 // repeated float data = 5 [packed = true];
8179 inline int BlobProto::data_size() const {
8180  return data_.size();
8181 }
8182 inline void BlobProto::clear_data() {
8183  data_.Clear();
8184 }
8185 inline float BlobProto::data(int index) const {
8186  return data_.Get(index);
8187 }
8188 inline void BlobProto::set_data(int index, float value) {
8189  data_.Set(index, value);
8190 }
8191 inline void BlobProto::add_data(float value) {
8192  data_.Add(value);
8193 }
8194 inline const ::google::protobuf::RepeatedField< float >&
8195 BlobProto::data() const {
8196  return data_;
8197 }
8198 inline ::google::protobuf::RepeatedField< float >*
8199 BlobProto::mutable_data() {
8200  return &data_;
8201 }
8202 
8203 // repeated float diff = 6 [packed = true];
8204 inline int BlobProto::diff_size() const {
8205  return diff_.size();
8206 }
8207 inline void BlobProto::clear_diff() {
8208  diff_.Clear();
8209 }
8210 inline float BlobProto::diff(int index) const {
8211  return diff_.Get(index);
8212 }
8213 inline void BlobProto::set_diff(int index, float value) {
8214  diff_.Set(index, value);
8215 }
8216 inline void BlobProto::add_diff(float value) {
8217  diff_.Add(value);
8218 }
8219 inline const ::google::protobuf::RepeatedField< float >&
8220 BlobProto::diff() const {
8221  return diff_;
8222 }
8223 inline ::google::protobuf::RepeatedField< float >*
8224 BlobProto::mutable_diff() {
8225  return &diff_;
8226 }
8227 
8228 
8229 // @@protoc_insertion_point(namespace_scope)
8230 
8231 } // namespace singa
8232 
8233 #ifndef SWIG
8234 namespace google {
8235 namespace protobuf {
8236 
8237 template <>
8238 inline const EnumDescriptor* GetEnumDescriptor< ::singa::ModelProto_GradCalcAlg>() {
8239  return ::singa::ModelProto_GradCalcAlg_descriptor();
8240 }
8241 template <>
8242 inline const EnumDescriptor* GetEnumDescriptor< ::singa::ParamProto_InitMethod>() {
8243  return ::singa::ParamProto_InitMethod_descriptor();
8244 }
8245 template <>
8246 inline const EnumDescriptor* GetEnumDescriptor< ::singa::LRNProto_NormRegion>() {
8247  return ::singa::LRNProto_NormRegion_descriptor();
8248 }
8249 template <>
8250 inline const EnumDescriptor* GetEnumDescriptor< ::singa::PoolingProto_PoolMethod>() {
8251  return ::singa::PoolingProto_PoolMethod_descriptor();
8252 }
8253 template <>
8254 inline const EnumDescriptor* GetEnumDescriptor< ::singa::Record_Type>() {
8255  return ::singa::Record_Type_descriptor();
8256 }
8257 template <>
8258 inline const EnumDescriptor* GetEnumDescriptor< ::singa::UpdaterProto_ChangeProto>() {
8259  return ::singa::UpdaterProto_ChangeProto_descriptor();
8260 }
8261 template <>
8262 inline const EnumDescriptor* GetEnumDescriptor< ::singa::MsgType>() {
8263  return ::singa::MsgType_descriptor();
8264 }
8265 template <>
8266 inline const EnumDescriptor* GetEnumDescriptor< ::singa::EntityType>() {
8267  return ::singa::EntityType_descriptor();
8268 }
8269 template <>
8270 inline const EnumDescriptor* GetEnumDescriptor< ::singa::Phase>() {
8271  return ::singa::Phase_descriptor();
8272 }
8273 template <>
8274 inline const EnumDescriptor* GetEnumDescriptor< ::singa::ShareOption>() {
8275  return ::singa::ShareOption_descriptor();
8276 }
8277 template <>
8278 inline const EnumDescriptor* GetEnumDescriptor< ::singa::PartitionType>() {
8279  return ::singa::PartitionType_descriptor();
8280 }
8281 template <>
8282 inline const EnumDescriptor* GetEnumDescriptor< ::singa::ConnectionType>() {
8283  return ::singa::ConnectionType_descriptor();
8284 }
8285 
8286 } // namespace google
8287 } // namespace protobuf
8288 #endif // SWIG
8289 
8290 // @@protoc_insertion_point(global_scope)
8291 
8292 #endif // PROTOBUF_model_2eproto__INCLUDED
Definition: model.pb.h:3309
Definition: model.pb.h:1128
Definition: model.pb.h:3432
Definition: model.pb.h:316
Definition: model.pb.h:1914
Definition: model.pb.h:1730
Definition: model.pb.h:3159
Definition: model.pb.h:3695
Definition: model.pb.h:1013
Definition: model.pb.h:669
Definition: model.pb.h:2128
Definition: model.pb.h:2412
Definition: model.pb.h:2732
Definition: model.pb.h:1822
Definition: model.pb.h:2868
Definition: model.pb.h:1648
Definition: model.pb.h:2036
Definition: model.pb.h:2494
Definition: model.pb.h:3042
Definition: model.pb.h:764
Definition: model.pb.h:2960
Definition: model.pb.h:2250
Definition: model.pb.h:1531
Definition: model.pb.h:2586