1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372
// This file is @generated by prost-build.
/// A TrainingJob that trains and uploads an AutoML Text Classification Model.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlTextClassification {
/// The input parameters of this TrainingJob.
#[prost(message, optional, tag = "1")]
pub inputs: ::core::option::Option<AutoMlTextClassificationInputs>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlTextClassificationInputs {
#[prost(bool, tag = "1")]
pub multi_label: bool,
}
/// A TrainingJob that trains and uploads an AutoML Video ObjectTracking Model.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlVideoObjectTracking {
/// The input parameters of this TrainingJob.
#[prost(message, optional, tag = "1")]
pub inputs: ::core::option::Option<AutoMlVideoObjectTrackingInputs>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlVideoObjectTrackingInputs {
#[prost(enumeration = "auto_ml_video_object_tracking_inputs::ModelType", tag = "1")]
pub model_type: i32,
}
/// Nested message and enum types in `AutoMlVideoObjectTrackingInputs`.
pub mod auto_ml_video_object_tracking_inputs {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum ModelType {
/// Should not be set.
Unspecified = 0,
/// A model best tailored to be used within Google Cloud, and which c annot
/// be exported. Default.
Cloud = 1,
/// A model that, in addition to being available within Google Cloud, can
/// also be exported (see ModelService.ExportModel) as a TensorFlow or
/// TensorFlow Lite model and used on a mobile or edge device afterwards.
MobileVersatile1 = 2,
/// A versatile model that is meant to be exported (see
/// ModelService.ExportModel) and used on a Google Coral device.
MobileCoralVersatile1 = 3,
/// A model that trades off quality for low latency, to be exported (see
/// ModelService.ExportModel) and used on a Google Coral device.
MobileCoralLowLatency1 = 4,
/// A versatile model that is meant to be exported (see
/// ModelService.ExportModel) and used on an NVIDIA Jetson device.
MobileJetsonVersatile1 = 5,
/// A model that trades off quality for low latency, to be exported (see
/// ModelService.ExportModel) and used on an NVIDIA Jetson device.
MobileJetsonLowLatency1 = 6,
}
impl ModelType {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
ModelType::Unspecified => "MODEL_TYPE_UNSPECIFIED",
ModelType::Cloud => "CLOUD",
ModelType::MobileVersatile1 => "MOBILE_VERSATILE_1",
ModelType::MobileCoralVersatile1 => "MOBILE_CORAL_VERSATILE_1",
ModelType::MobileCoralLowLatency1 => "MOBILE_CORAL_LOW_LATENCY_1",
ModelType::MobileJetsonVersatile1 => "MOBILE_JETSON_VERSATILE_1",
ModelType::MobileJetsonLowLatency1 => "MOBILE_JETSON_LOW_LATENCY_1",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MODEL_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"CLOUD" => Some(Self::Cloud),
"MOBILE_VERSATILE_1" => Some(Self::MobileVersatile1),
"MOBILE_CORAL_VERSATILE_1" => Some(Self::MobileCoralVersatile1),
"MOBILE_CORAL_LOW_LATENCY_1" => Some(Self::MobileCoralLowLatency1),
"MOBILE_JETSON_VERSATILE_1" => Some(Self::MobileJetsonVersatile1),
"MOBILE_JETSON_LOW_LATENCY_1" => Some(Self::MobileJetsonLowLatency1),
_ => None,
}
}
}
}
/// A TrainingJob that trains and uploads an AutoML Image Segmentation Model.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoMlImageSegmentation {
/// The input parameters of this TrainingJob.
#[prost(message, optional, tag = "1")]
pub inputs: ::core::option::Option<AutoMlImageSegmentationInputs>,
/// The metadata information.
#[prost(message, optional, tag = "2")]
pub metadata: ::core::option::Option<AutoMlImageSegmentationMetadata>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoMlImageSegmentationInputs {
#[prost(enumeration = "auto_ml_image_segmentation_inputs::ModelType", tag = "1")]
pub model_type: i32,
/// The training budget of creating this model, expressed in milli node
/// hours i.e. 1,000 value in this field means 1 node hour. The actual
/// metadata.costMilliNodeHours will be equal or less than this value.
/// If further model training ceases to provide any improvements, it will
/// stop without using the full budget and the metadata.successfulStopReason
/// will be `model-converged`.
/// Note, node_hour = actual_hour * number_of_nodes_involved. Or
/// actaul_wall_clock_hours = train_budget_milli_node_hours /
/// (number_of_nodes_involved * 1000)
/// For modelType `cloud-high-accuracy-1`(default), the budget must be between
/// 20,000 and 2,000,000 milli node hours, inclusive. The default value is
/// 192,000 which represents one day in wall time
/// (1000 milli * 24 hours * 8 nodes).
#[prost(int64, tag = "2")]
pub budget_milli_node_hours: i64,
/// The ID of the `base` model. If it is specified, the new model will be
/// trained based on the `base` model. Otherwise, the new model will be
/// trained from scratch. The `base` model must be in the same
/// Project and Location as the new Model to train, and have the same
/// modelType.
#[prost(string, tag = "3")]
pub base_model_id: ::prost::alloc::string::String,
}
/// Nested message and enum types in `AutoMlImageSegmentationInputs`.
pub mod auto_ml_image_segmentation_inputs {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum ModelType {
/// Should not be set.
Unspecified = 0,
/// A model to be used via prediction calls to uCAIP API. Expected
/// to have a higher latency, but should also have a higher prediction
/// quality than other models.
CloudHighAccuracy1 = 1,
/// A model to be used via prediction calls to uCAIP API. Expected
/// to have a lower latency but relatively lower prediction quality.
CloudLowAccuracy1 = 2,
/// A model that, in addition to being available within Google
/// Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow
/// model and used on a mobile or edge device afterwards.
/// Expected to have low latency, but may have lower prediction
/// quality than other mobile models.
MobileTfLowLatency1 = 3,
}
impl ModelType {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
ModelType::Unspecified => "MODEL_TYPE_UNSPECIFIED",
ModelType::CloudHighAccuracy1 => "CLOUD_HIGH_ACCURACY_1",
ModelType::CloudLowAccuracy1 => "CLOUD_LOW_ACCURACY_1",
ModelType::MobileTfLowLatency1 => "MOBILE_TF_LOW_LATENCY_1",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MODEL_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"CLOUD_HIGH_ACCURACY_1" => Some(Self::CloudHighAccuracy1),
"CLOUD_LOW_ACCURACY_1" => Some(Self::CloudLowAccuracy1),
"MOBILE_TF_LOW_LATENCY_1" => Some(Self::MobileTfLowLatency1),
_ => None,
}
}
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlImageSegmentationMetadata {
/// The actual training cost of creating this model, expressed in
/// milli node hours, i.e. 1,000 value in this field means 1 node hour.
/// Guaranteed to not exceed inputs.budgetMilliNodeHours.
#[prost(int64, tag = "1")]
pub cost_milli_node_hours: i64,
/// For successful job completions, this is the reason why the job has
/// finished.
#[prost(
enumeration = "auto_ml_image_segmentation_metadata::SuccessfulStopReason",
tag = "2"
)]
pub successful_stop_reason: i32,
}
/// Nested message and enum types in `AutoMlImageSegmentationMetadata`.
pub mod auto_ml_image_segmentation_metadata {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum SuccessfulStopReason {
/// Should not be set.
Unspecified = 0,
/// The inputs.budgetMilliNodeHours had been reached.
BudgetReached = 1,
/// Further training of the Model ceased to increase its quality, since it
/// already has converged.
ModelConverged = 2,
}
impl SuccessfulStopReason {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
SuccessfulStopReason::Unspecified => "SUCCESSFUL_STOP_REASON_UNSPECIFIED",
SuccessfulStopReason::BudgetReached => "BUDGET_REACHED",
SuccessfulStopReason::ModelConverged => "MODEL_CONVERGED",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SUCCESSFUL_STOP_REASON_UNSPECIFIED" => Some(Self::Unspecified),
"BUDGET_REACHED" => Some(Self::BudgetReached),
"MODEL_CONVERGED" => Some(Self::ModelConverged),
_ => None,
}
}
}
}
/// A TrainingJob that trains and uploads an AutoML Image Object Detection Model.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlImageObjectDetection {
/// The input parameters of this TrainingJob.
#[prost(message, optional, tag = "1")]
pub inputs: ::core::option::Option<AutoMlImageObjectDetectionInputs>,
/// The metadata information
#[prost(message, optional, tag = "2")]
pub metadata: ::core::option::Option<AutoMlImageObjectDetectionMetadata>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlImageObjectDetectionInputs {
#[prost(enumeration = "auto_ml_image_object_detection_inputs::ModelType", tag = "1")]
pub model_type: i32,
/// The training budget of creating this model, expressed in milli node
/// hours i.e. 1,000 value in this field means 1 node hour. The actual
/// metadata.costMilliNodeHours will be equal or less than this value.
/// If further model training ceases to provide any improvements, it will
/// stop without using the full budget and the metadata.successfulStopReason
/// will be `model-converged`.
/// Note, node_hour = actual_hour * number_of_nodes_involved.
/// For modelType `cloud`(default), the budget must be between 20,000
/// and 900,000 milli node hours, inclusive. The default value is 216,000
/// which represents one day in wall time, considering 9 nodes are used.
/// For model types `mobile-tf-low-latency-1`, `mobile-tf-versatile-1`,
/// `mobile-tf-high-accuracy-1`
/// the training budget must be between 1,000 and 100,000 milli node hours,
/// inclusive. The default value is 24,000 which represents one day in
/// wall time on a single node that is used.
#[prost(int64, tag = "2")]
pub budget_milli_node_hours: i64,
/// Use the entire training budget. This disables the early stopping feature.
/// When false the early stopping feature is enabled, which means that AutoML
/// Image Object Detection might stop training before the entire training
/// budget has been used.
#[prost(bool, tag = "3")]
pub disable_early_stopping: bool,
}
/// Nested message and enum types in `AutoMlImageObjectDetectionInputs`.
pub mod auto_ml_image_object_detection_inputs {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum ModelType {
/// Should not be set.
Unspecified = 0,
/// A model best tailored to be used within Google Cloud, and which cannot
/// be exported. Expected to have a higher latency, but should also have a
/// higher prediction quality than other cloud models.
CloudHighAccuracy1 = 1,
/// A model best tailored to be used within Google Cloud, and which cannot
/// be exported. Expected to have a low latency, but may have lower
/// prediction quality than other cloud models.
CloudLowLatency1 = 2,
/// A model that, in addition to being available within Google
/// Cloud can also be exported (see ModelService.ExportModel) and
/// used on a mobile or edge device with TensorFlow afterwards.
/// Expected to have low latency, but may have lower prediction
/// quality than other mobile models.
MobileTfLowLatency1 = 3,
/// A model that, in addition to being available within Google
/// Cloud can also be exported (see ModelService.ExportModel) and
/// used on a mobile or edge device with TensorFlow afterwards.
MobileTfVersatile1 = 4,
/// A model that, in addition to being available within Google
/// Cloud, can also be exported (see ModelService.ExportModel) and
/// used on a mobile or edge device with TensorFlow afterwards.
/// Expected to have a higher latency, but should also have a higher
/// prediction quality than other mobile models.
MobileTfHighAccuracy1 = 5,
}
impl ModelType {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
ModelType::Unspecified => "MODEL_TYPE_UNSPECIFIED",
ModelType::CloudHighAccuracy1 => "CLOUD_HIGH_ACCURACY_1",
ModelType::CloudLowLatency1 => "CLOUD_LOW_LATENCY_1",
ModelType::MobileTfLowLatency1 => "MOBILE_TF_LOW_LATENCY_1",
ModelType::MobileTfVersatile1 => "MOBILE_TF_VERSATILE_1",
ModelType::MobileTfHighAccuracy1 => "MOBILE_TF_HIGH_ACCURACY_1",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MODEL_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"CLOUD_HIGH_ACCURACY_1" => Some(Self::CloudHighAccuracy1),
"CLOUD_LOW_LATENCY_1" => Some(Self::CloudLowLatency1),
"MOBILE_TF_LOW_LATENCY_1" => Some(Self::MobileTfLowLatency1),
"MOBILE_TF_VERSATILE_1" => Some(Self::MobileTfVersatile1),
"MOBILE_TF_HIGH_ACCURACY_1" => Some(Self::MobileTfHighAccuracy1),
_ => None,
}
}
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlImageObjectDetectionMetadata {
/// The actual training cost of creating this model, expressed in
/// milli node hours, i.e. 1,000 value in this field means 1 node hour.
/// Guaranteed to not exceed inputs.budgetMilliNodeHours.
#[prost(int64, tag = "1")]
pub cost_milli_node_hours: i64,
/// For successful job completions, this is the reason why the job has
/// finished.
#[prost(
enumeration = "auto_ml_image_object_detection_metadata::SuccessfulStopReason",
tag = "2"
)]
pub successful_stop_reason: i32,
}
/// Nested message and enum types in `AutoMlImageObjectDetectionMetadata`.
pub mod auto_ml_image_object_detection_metadata {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum SuccessfulStopReason {
/// Should not be set.
Unspecified = 0,
/// The inputs.budgetMilliNodeHours had been reached.
BudgetReached = 1,
/// Further training of the Model ceased to increase its quality, since it
/// already has converged.
ModelConverged = 2,
}
impl SuccessfulStopReason {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
SuccessfulStopReason::Unspecified => "SUCCESSFUL_STOP_REASON_UNSPECIFIED",
SuccessfulStopReason::BudgetReached => "BUDGET_REACHED",
SuccessfulStopReason::ModelConverged => "MODEL_CONVERGED",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SUCCESSFUL_STOP_REASON_UNSPECIFIED" => Some(Self::Unspecified),
"BUDGET_REACHED" => Some(Self::BudgetReached),
"MODEL_CONVERGED" => Some(Self::ModelConverged),
_ => None,
}
}
}
}
/// A TrainingJob that trains and uploads an AutoML Text Sentiment Model.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlTextSentiment {
/// The input parameters of this TrainingJob.
#[prost(message, optional, tag = "1")]
pub inputs: ::core::option::Option<AutoMlTextSentimentInputs>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlTextSentimentInputs {
/// A sentiment is expressed as an integer ordinal, where higher value
/// means a more positive sentiment. The range of sentiments that will be used
/// is between 0 and sentimentMax (inclusive on both ends), and all the values
/// in the range must be represented in the dataset before a model can be
/// created.
/// Only the Annotations with this sentimentMax will be used for training.
/// sentimentMax value must be between 1 and 10 (inclusive).
#[prost(int32, tag = "1")]
pub sentiment_max: i32,
}
/// A TrainingJob that trains and uploads an AutoML Video Classification Model.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlVideoClassification {
/// The input parameters of this TrainingJob.
#[prost(message, optional, tag = "1")]
pub inputs: ::core::option::Option<AutoMlVideoClassificationInputs>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlVideoClassificationInputs {
#[prost(enumeration = "auto_ml_video_classification_inputs::ModelType", tag = "1")]
pub model_type: i32,
}
/// Nested message and enum types in `AutoMlVideoClassificationInputs`.
pub mod auto_ml_video_classification_inputs {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum ModelType {
/// Should not be set.
Unspecified = 0,
/// A model best tailored to be used within Google Cloud, and which cannot
/// be exported. Default.
Cloud = 1,
/// A model that, in addition to being available within Google Cloud, can
/// also be exported (see ModelService.ExportModel) as a TensorFlow or
/// TensorFlow Lite model and used on a mobile or edge device afterwards.
MobileVersatile1 = 2,
/// A model that, in addition to being available within Google Cloud, can
/// also be exported (see ModelService.ExportModel) to a Jetson device
/// afterwards.
MobileJetsonVersatile1 = 3,
}
impl ModelType {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
ModelType::Unspecified => "MODEL_TYPE_UNSPECIFIED",
ModelType::Cloud => "CLOUD",
ModelType::MobileVersatile1 => "MOBILE_VERSATILE_1",
ModelType::MobileJetsonVersatile1 => "MOBILE_JETSON_VERSATILE_1",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MODEL_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"CLOUD" => Some(Self::Cloud),
"MOBILE_VERSATILE_1" => Some(Self::MobileVersatile1),
"MOBILE_JETSON_VERSATILE_1" => Some(Self::MobileJetsonVersatile1),
_ => None,
}
}
}
}
/// A TrainingJob that trains and uploads an AutoML Image Classification Model.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoMlImageClassification {
/// The input parameters of this TrainingJob.
#[prost(message, optional, tag = "1")]
pub inputs: ::core::option::Option<AutoMlImageClassificationInputs>,
/// The metadata information.
#[prost(message, optional, tag = "2")]
pub metadata: ::core::option::Option<AutoMlImageClassificationMetadata>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoMlImageClassificationInputs {
#[prost(enumeration = "auto_ml_image_classification_inputs::ModelType", tag = "1")]
pub model_type: i32,
/// The ID of the `base` model. If it is specified, the new model will be
/// trained based on the `base` model. Otherwise, the new model will be
/// trained from scratch. The `base` model must be in the same
/// Project and Location as the new Model to train, and have the same
/// modelType.
#[prost(string, tag = "2")]
pub base_model_id: ::prost::alloc::string::String,
/// The training budget of creating this model, expressed in milli node
/// hours i.e. 1,000 value in this field means 1 node hour. The actual
/// metadata.costMilliNodeHours will be equal or less than this value.
/// If further model training ceases to provide any improvements, it will
/// stop without using the full budget and the metadata.successfulStopReason
/// will be `model-converged`.
/// Note, node_hour = actual_hour * number_of_nodes_involved.
/// For modelType `cloud`(default), the budget must be between 8,000
/// and 800,000 milli node hours, inclusive. The default value is 192,000
/// which represents one day in wall time, considering 8 nodes are used.
/// For model types `mobile-tf-low-latency-1`, `mobile-tf-versatile-1`,
/// `mobile-tf-high-accuracy-1`, the training budget must be between
/// 1,000 and 100,000 milli node hours, inclusive.
/// The default value is 24,000 which represents one day in wall time on a
/// single node that is used.
#[prost(int64, tag = "3")]
pub budget_milli_node_hours: i64,
/// Use the entire training budget. This disables the early stopping feature.
/// When false the early stopping feature is enabled, which means that
/// AutoML Image Classification might stop training before the entire
/// training budget has been used.
#[prost(bool, tag = "4")]
pub disable_early_stopping: bool,
/// If false, a single-label (multi-class) Model will be trained (i.e.
/// assuming that for each image just up to one annotation may be
/// applicable). If true, a multi-label Model will be trained (i.e.
/// assuming that for each image multiple annotations may be applicable).
#[prost(bool, tag = "5")]
pub multi_label: bool,
}
/// Nested message and enum types in `AutoMlImageClassificationInputs`.
pub mod auto_ml_image_classification_inputs {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum ModelType {
/// Should not be set.
Unspecified = 0,
/// A Model best tailored to be used within Google Cloud, and which cannot
/// be exported.
/// Default.
Cloud = 1,
/// A model that, in addition to being available within Google
/// Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow
/// or Core ML model and used on a mobile or edge device afterwards.
/// Expected to have low latency, but may have lower prediction
/// quality than other mobile models.
MobileTfLowLatency1 = 2,
/// A model that, in addition to being available within Google
/// Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow
/// or Core ML model and used on a mobile or edge device with afterwards.
MobileTfVersatile1 = 3,
/// A model that, in addition to being available within Google
/// Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow
/// or Core ML model and used on a mobile or edge device afterwards.
/// Expected to have a higher latency, but should also have a higher
/// prediction quality than other mobile models.
MobileTfHighAccuracy1 = 4,
}
impl ModelType {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
ModelType::Unspecified => "MODEL_TYPE_UNSPECIFIED",
ModelType::Cloud => "CLOUD",
ModelType::MobileTfLowLatency1 => "MOBILE_TF_LOW_LATENCY_1",
ModelType::MobileTfVersatile1 => "MOBILE_TF_VERSATILE_1",
ModelType::MobileTfHighAccuracy1 => "MOBILE_TF_HIGH_ACCURACY_1",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MODEL_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"CLOUD" => Some(Self::Cloud),
"MOBILE_TF_LOW_LATENCY_1" => Some(Self::MobileTfLowLatency1),
"MOBILE_TF_VERSATILE_1" => Some(Self::MobileTfVersatile1),
"MOBILE_TF_HIGH_ACCURACY_1" => Some(Self::MobileTfHighAccuracy1),
_ => None,
}
}
}
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlImageClassificationMetadata {
/// The actual training cost of creating this model, expressed in
/// milli node hours, i.e. 1,000 value in this field means 1 node hour.
/// Guaranteed to not exceed inputs.budgetMilliNodeHours.
#[prost(int64, tag = "1")]
pub cost_milli_node_hours: i64,
/// For successful job completions, this is the reason why the job has
/// finished.
#[prost(
enumeration = "auto_ml_image_classification_metadata::SuccessfulStopReason",
tag = "2"
)]
pub successful_stop_reason: i32,
}
/// Nested message and enum types in `AutoMlImageClassificationMetadata`.
pub mod auto_ml_image_classification_metadata {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum SuccessfulStopReason {
/// Should not be set.
Unspecified = 0,
/// The inputs.budgetMilliNodeHours had been reached.
BudgetReached = 1,
/// Further training of the Model ceased to increase its quality, since it
/// already has converged.
ModelConverged = 2,
}
impl SuccessfulStopReason {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
SuccessfulStopReason::Unspecified => "SUCCESSFUL_STOP_REASON_UNSPECIFIED",
SuccessfulStopReason::BudgetReached => "BUDGET_REACHED",
SuccessfulStopReason::ModelConverged => "MODEL_CONVERGED",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"SUCCESSFUL_STOP_REASON_UNSPECIFIED" => Some(Self::Unspecified),
"BUDGET_REACHED" => Some(Self::BudgetReached),
"MODEL_CONVERGED" => Some(Self::ModelConverged),
_ => None,
}
}
}
}
/// A TrainingJob that trains and uploads an AutoML Text Extraction Model.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlTextExtraction {
/// The input parameters of this TrainingJob.
#[prost(message, optional, tag = "1")]
pub inputs: ::core::option::Option<AutoMlTextExtractionInputs>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlTextExtractionInputs {}
/// Configuration for exporting test set predictions to a BigQuery table.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExportEvaluatedDataItemsConfig {
/// URI of desired destination BigQuery table. Expected format:
/// bq://<project_id>:<dataset_id>:<table>
///
/// If not specified, then results are exported to the following auto-created
/// BigQuery table:
/// <project_id>:export_evaluated_examples_<model_name>_<yyyy_MM_dd'T'HH_mm_ss_SSS'Z'>.evaluated_examples
#[prost(string, tag = "1")]
pub destination_bigquery_uri: ::prost::alloc::string::String,
/// If true and an export destination is specified, then the contents of the
/// destination are overwritten. Otherwise, if the export destination already
/// exists, then the export operation fails.
#[prost(bool, tag = "2")]
pub override_existing_table: bool,
}
/// A TrainingJob that trains and uploads an AutoML Video Action Recognition
/// Model.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlVideoActionRecognition {
/// The input parameters of this TrainingJob.
#[prost(message, optional, tag = "1")]
pub inputs: ::core::option::Option<AutoMlVideoActionRecognitionInputs>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlVideoActionRecognitionInputs {
#[prost(
enumeration = "auto_ml_video_action_recognition_inputs::ModelType",
tag = "1"
)]
pub model_type: i32,
}
/// Nested message and enum types in `AutoMlVideoActionRecognitionInputs`.
pub mod auto_ml_video_action_recognition_inputs {
#[derive(
Clone,
Copy,
Debug,
PartialEq,
Eq,
Hash,
PartialOrd,
Ord,
::prost::Enumeration
)]
#[repr(i32)]
pub enum ModelType {
/// Should not be set.
Unspecified = 0,
/// A model best tailored to be used within Google Cloud, and which c annot
/// be exported. Default.
Cloud = 1,
/// A model that, in addition to being available within Google Cloud, can
/// also be exported (see ModelService.ExportModel) as a TensorFlow or
/// TensorFlow Lite model and used on a mobile or edge device afterwards.
MobileVersatile1 = 2,
/// A model that, in addition to being available within Google Cloud, can
/// also be exported (see ModelService.ExportModel) to a Jetson device
/// afterwards.
MobileJetsonVersatile1 = 3,
/// A model that, in addition to being available within Google Cloud, can
/// also be exported (see ModelService.ExportModel) as a TensorFlow or
/// TensorFlow Lite model and used on a Coral device afterwards.
MobileCoralVersatile1 = 4,
}
impl ModelType {
/// String value of the enum field names used in the ProtoBuf definition.
///
/// The values are not transformed in any way and thus are considered stable
/// (if the ProtoBuf definition does not change) and safe for programmatic use.
pub fn as_str_name(&self) -> &'static str {
match self {
ModelType::Unspecified => "MODEL_TYPE_UNSPECIFIED",
ModelType::Cloud => "CLOUD",
ModelType::MobileVersatile1 => "MOBILE_VERSATILE_1",
ModelType::MobileJetsonVersatile1 => "MOBILE_JETSON_VERSATILE_1",
ModelType::MobileCoralVersatile1 => "MOBILE_CORAL_VERSATILE_1",
}
}
/// Creates an enum from field names used in the ProtoBuf definition.
pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
match value {
"MODEL_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
"CLOUD" => Some(Self::Cloud),
"MOBILE_VERSATILE_1" => Some(Self::MobileVersatile1),
"MOBILE_JETSON_VERSATILE_1" => Some(Self::MobileJetsonVersatile1),
"MOBILE_CORAL_VERSATILE_1" => Some(Self::MobileCoralVersatile1),
_ => None,
}
}
}
}
/// A TrainingJob that trains and uploads an AutoML Forecasting Model.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoMlForecasting {
/// The input parameters of this TrainingJob.
#[prost(message, optional, tag = "1")]
pub inputs: ::core::option::Option<AutoMlForecastingInputs>,
/// The metadata information.
#[prost(message, optional, tag = "2")]
pub metadata: ::core::option::Option<AutoMlForecastingMetadata>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoMlForecastingInputs {
/// The name of the column that the model is to predict.
#[prost(string, tag = "1")]
pub target_column: ::prost::alloc::string::String,
/// The name of the column that identifies the time series.
#[prost(string, tag = "2")]
pub time_series_identifier_column: ::prost::alloc::string::String,
/// The name of the column that identifies time order in the time series.
#[prost(string, tag = "3")]
pub time_column: ::prost::alloc::string::String,
/// Each transformation will apply transform function to given input column.
/// And the result will be used for training.
/// When creating transformation for BigQuery Struct column, the column should
/// be flattened using "." as the delimiter.
#[prost(message, repeated, tag = "4")]
pub transformations: ::prost::alloc::vec::Vec<
auto_ml_forecasting_inputs::Transformation,
>,
/// Objective function the model is optimizing towards. The training process
/// creates a model that optimizes the value of the objective
/// function over the validation set.
///
/// The supported optimization objectives:
///
/// * "minimize-rmse" (default) - Minimize root-mean-squared error (RMSE).
///
/// * "minimize-mae" - Minimize mean-absolute error (MAE).
///
/// * "minimize-rmsle" - Minimize root-mean-squared log error (RMSLE).
///
/// * "minimize-rmspe" - Minimize root-mean-squared percentage error (RMSPE).
///
/// * "minimize-wape-mae" - Minimize the combination of weighted absolute
/// percentage error (WAPE) and mean-absolute-error (MAE).
///
/// * "minimize-quantile-loss" - Minimize the quantile loss at the quantiles
/// defined in `quantiles`.
#[prost(string, tag = "5")]
pub optimization_objective: ::prost::alloc::string::String,
/// Required. The train budget of creating this model, expressed in milli node
/// hours i.e. 1,000 value in this field means 1 node hour.
///
/// The training cost of the model will not exceed this budget. The final cost
/// will be attempted to be close to the budget, though may end up being (even)
/// noticeably smaller - at the backend's discretion. This especially may
/// happen when further model training ceases to provide any improvements.
///
/// If the budget is set to a value known to be insufficient to train a
/// model for the given dataset, the training won't be attempted and
/// will error.
///
/// The train budget must be between 1,000 and 72,000 milli node hours,
/// inclusive.
#[prost(int64, tag = "6")]
pub train_budget_milli_node_hours: i64,
/// Column name that should be used as the weight column.
/// Higher values in this column give more importance to the row
/// during model training. The column must have numeric values between 0 and
/// 10000 inclusively; 0 means the row is ignored for training. If weight
/// column field is not set, then all rows are assumed to have equal weight
/// of 1.
#[prost(string, tag = "7")]
pub weight_column: ::prost::alloc::string::String,
/// Column names that should be used as attribute columns.
/// The value of these columns does not vary as a function of time.
/// For example, store ID or item color.
#[prost(string, repeated, tag = "19")]
pub time_series_attribute_columns: ::prost::alloc::vec::Vec<
::prost::alloc::string::String,
>,
/// Names of columns that are unavailable when a forecast is requested.
/// This column contains information for the given entity (identified
/// by the time_series_identifier_column) that is unknown before the forecast
/// For example, actual weather on a given day.
#[prost(string, repeated, tag = "20")]
pub unavailable_at_forecast_columns: ::prost::alloc::vec::Vec<
::prost::alloc::string::String,
>,
/// Names of columns that are available and provided when a forecast
/// is requested. These columns
/// contain information for the given entity (identified by the
/// time_series_identifier_column column) that is known at forecast.
/// For example, predicted weather for a specific day.
#[prost(string, repeated, tag = "21")]
pub available_at_forecast_columns: ::prost::alloc::vec::Vec<
::prost::alloc::string::String,
>,
/// Expected difference in time granularity between rows in the data.
#[prost(message, optional, tag = "22")]
pub data_granularity: ::core::option::Option<
auto_ml_forecasting_inputs::Granularity,
>,
/// The amount of time into the future for which forecasted values for the
/// target are returned. Expressed in number of units defined by the
/// `data_granularity` field.
#[prost(int64, tag = "23")]
pub forecast_horizon: i64,
/// The amount of time into the past training and prediction data is used
/// for model training and prediction respectively. Expressed in number of
/// units defined by the `data_granularity` field.
#[prost(int64, tag = "24")]
pub context_window: i64,
/// Configuration for exporting test set predictions to a BigQuery table. If
/// this configuration is absent, then the export is not performed.
#[prost(message, optional, tag = "15")]
pub export_evaluated_data_items_config: ::core::option::Option<
ExportEvaluatedDataItemsConfig,
>,
/// Quantiles to use for minimize-quantile-loss `optimization_objective`. Up to
/// 5 quantiles are allowed of values between 0 and 1, exclusive. Required if
/// the value of optimization_objective is minimize-quantile-loss. Represents
/// the percent quantiles to use for that objective. Quantiles must be unique.
#[prost(double, repeated, tag = "16")]
pub quantiles: ::prost::alloc::vec::Vec<f64>,
/// Validation options for the data validation component. The available options
/// are:
///
/// * "fail-pipeline" - default, will validate against the validation and
/// fail the pipeline if it fails.
///
/// * "ignore-validation" - ignore the results of the validation and continue
#[prost(string, tag = "17")]
pub validation_options: ::prost::alloc::string::String,
/// Additional experiment flags for the time series forcasting training.
#[prost(string, repeated, tag = "25")]
pub additional_experiments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
/// Nested message and enum types in `AutoMlForecastingInputs`.
pub mod auto_ml_forecasting_inputs {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Transformation {
/// The transformation that the training pipeline will apply to the input
/// columns.
#[prost(oneof = "transformation::TransformationDetail", tags = "1, 2, 3, 4, 5")]
pub transformation_detail: ::core::option::Option<
transformation::TransformationDetail,
>,
}
/// Nested message and enum types in `Transformation`.
pub mod transformation {
/// Training pipeline will infer the proper transformation based on the
/// statistic of dataset.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoTransformation {
#[prost(string, tag = "1")]
pub column_name: ::prost::alloc::string::String,
}
/// Training pipeline will perform following transformation functions.
///
/// * The value converted to float32.
///
/// * The z_score of the value.
///
/// * log(value+1) when the value is greater than or equal to 0. Otherwise,
/// this transformation is not applied and the value is considered a
/// missing value.
///
/// * z_score of log(value+1) when the value is greater than or equal to 0.
/// Otherwise, this transformation is not applied and the value is
/// considered a missing value.
///
/// * A boolean value that indicates whether the value is valid.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NumericTransformation {
#[prost(string, tag = "1")]
pub column_name: ::prost::alloc::string::String,
}
/// Training pipeline will perform following transformation functions.
///
/// * The categorical string as is--no change to case, punctuation,
/// spelling, tense, and so on.
///
/// * Convert the category name to a dictionary lookup index and generate an
/// embedding for each index.
///
/// * Categories that appear less than 5 times in the training dataset are
/// treated as the "unknown" category. The "unknown" category gets its own
/// special lookup index and resulting embedding.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CategoricalTransformation {
#[prost(string, tag = "1")]
pub column_name: ::prost::alloc::string::String,
}
/// Training pipeline will perform following transformation functions.
///
/// * Apply the transformation functions for Numerical columns.
///
/// * Determine the year, month, day,and weekday. Treat each value from the
/// timestamp as a Categorical column.
///
/// * Invalid numerical values (for example, values that fall outside of a
/// typical timestamp range, or are extreme values) receive no special
/// treatment and are not removed.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TimestampTransformation {
#[prost(string, tag = "1")]
pub column_name: ::prost::alloc::string::String,
/// The format in which that time field is expressed. The time_format must
/// either be one of:
///
/// * `unix-seconds`
///
/// * `unix-milliseconds`
///
/// * `unix-microseconds`
///
/// * `unix-nanoseconds`
///
/// (for respectively number of seconds, milliseconds, microseconds and
/// nanoseconds since start of the Unix epoch);
///
/// or be written in `strftime` syntax.
///
/// If time_format is not set, then the
/// default format is RFC 3339 `date-time` format, where
/// `time-offset` = `"Z"` (e.g. 1985-04-12T23:20:50.52Z)
#[prost(string, tag = "2")]
pub time_format: ::prost::alloc::string::String,
}
/// Training pipeline will perform following transformation functions.
///
/// * The text as is--no change to case, punctuation, spelling, tense, and
/// so on.
///
/// * Convert the category name to a dictionary lookup index and generate an
/// embedding for each index.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TextTransformation {
#[prost(string, tag = "1")]
pub column_name: ::prost::alloc::string::String,
}
/// The transformation that the training pipeline will apply to the input
/// columns.
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum TransformationDetail {
#[prost(message, tag = "1")]
Auto(AutoTransformation),
#[prost(message, tag = "2")]
Numeric(NumericTransformation),
#[prost(message, tag = "3")]
Categorical(CategoricalTransformation),
#[prost(message, tag = "4")]
Timestamp(TimestampTransformation),
#[prost(message, tag = "5")]
Text(TextTransformation),
}
}
/// A duration of time expressed in time granularity units.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Granularity {
/// The time granularity unit of this time period.
/// The supported units are:
///
/// * "minute"
///
/// * "hour"
///
/// * "day"
///
/// * "week"
///
/// * "month"
///
/// * "year"
#[prost(string, tag = "1")]
pub unit: ::prost::alloc::string::String,
/// The number of granularity_units between data points in the training
/// data. If `granularity_unit` is `minute`,
/// can be 1, 5, 10, 15, or 30. For all other values of `granularity_unit`,
/// must be 1.
#[prost(int64, tag = "2")]
pub quantity: i64,
}
}
/// Model metadata specific to AutoML Forecasting.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlForecastingMetadata {
/// Output only. The actual training cost of the model, expressed in milli
/// node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed
/// to not exceed the train budget.
#[prost(int64, tag = "1")]
pub train_cost_milli_node_hours: i64,
}
/// A TrainingJob that trains and uploads an AutoML Tables Model.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoMlTables {
/// The input parameters of this TrainingJob.
#[prost(message, optional, tag = "1")]
pub inputs: ::core::option::Option<AutoMlTablesInputs>,
/// The metadata information.
#[prost(message, optional, tag = "2")]
pub metadata: ::core::option::Option<AutoMlTablesMetadata>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoMlTablesInputs {
/// The type of prediction the Model is to produce.
/// "classification" - Predict one out of multiple target values is
/// picked for each row.
/// "regression" - Predict a value based on its relation to other values.
/// This type is available only to columns that contain
/// semantically numeric values, i.e. integers or floating
/// point number, even if stored as e.g. strings.
#[prost(string, tag = "1")]
pub prediction_type: ::prost::alloc::string::String,
/// The column name of the target column that the model is to predict.
#[prost(string, tag = "2")]
pub target_column: ::prost::alloc::string::String,
/// Each transformation will apply transform function to given input column.
/// And the result will be used for training.
/// When creating transformation for BigQuery Struct column, the column should
/// be flattened using "." as the delimiter.
#[prost(message, repeated, tag = "3")]
pub transformations: ::prost::alloc::vec::Vec<auto_ml_tables_inputs::Transformation>,
/// Objective function the model is optimizing towards. The training process
/// creates a model that maximizes/minimizes the value of the objective
/// function over the validation set.
///
/// The supported optimization objectives depend on the prediction type.
/// If the field is not set, a default objective function is used.
///
/// classification (binary):
/// "maximize-au-roc" (default) - Maximize the area under the receiver
/// operating characteristic (ROC) curve.
/// "minimize-log-loss" - Minimize log loss.
/// "maximize-au-prc" - Maximize the area under the precision-recall curve.
/// "maximize-precision-at-recall" - Maximize precision for a specified
/// recall value.
/// "maximize-recall-at-precision" - Maximize recall for a specified
/// precision value.
///
/// classification (multi-class):
/// "minimize-log-loss" (default) - Minimize log loss.
///
/// regression:
/// "minimize-rmse" (default) - Minimize root-mean-squared error (RMSE).
/// "minimize-mae" - Minimize mean-absolute error (MAE).
/// "minimize-rmsle" - Minimize root-mean-squared log error (RMSLE).
#[prost(string, tag = "4")]
pub optimization_objective: ::prost::alloc::string::String,
/// Required. The train budget of creating this model, expressed in milli node
/// hours i.e. 1,000 value in this field means 1 node hour.
///
/// The training cost of the model will not exceed this budget. The final cost
/// will be attempted to be close to the budget, though may end up being (even)
/// noticeably smaller - at the backend's discretion. This especially may
/// happen when further model training ceases to provide any improvements.
///
/// If the budget is set to a value known to be insufficient to train a
/// model for the given dataset, the training won't be attempted and
/// will error.
///
/// The train budget must be between 1,000 and 72,000 milli node hours,
/// inclusive.
#[prost(int64, tag = "7")]
pub train_budget_milli_node_hours: i64,
/// Use the entire training budget. This disables the early stopping feature.
/// By default, the early stopping feature is enabled, which means that AutoML
/// Tables might stop training before the entire training budget has been used.
#[prost(bool, tag = "8")]
pub disable_early_stopping: bool,
/// Column name that should be used as the weight column.
/// Higher values in this column give more importance to the row
/// during model training. The column must have numeric values between 0 and
/// 10000 inclusively; 0 means the row is ignored for training. If weight
/// column field is not set, then all rows are assumed to have equal weight
/// of 1.
#[prost(string, tag = "9")]
pub weight_column_name: ::prost::alloc::string::String,
/// Configuration for exporting test set predictions to a BigQuery table. If
/// this configuration is absent, then the export is not performed.
#[prost(message, optional, tag = "10")]
pub export_evaluated_data_items_config: ::core::option::Option<
ExportEvaluatedDataItemsConfig,
>,
/// Additional experiment flags for the Tables training pipeline.
#[prost(string, repeated, tag = "11")]
pub additional_experiments: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
/// Additional optimization objective configuration. Required for
/// `maximize-precision-at-recall` and `maximize-recall-at-precision`,
/// otherwise unused.
#[prost(
oneof = "auto_ml_tables_inputs::AdditionalOptimizationObjectiveConfig",
tags = "5, 6"
)]
pub additional_optimization_objective_config: ::core::option::Option<
auto_ml_tables_inputs::AdditionalOptimizationObjectiveConfig,
>,
}
/// Nested message and enum types in `AutoMlTablesInputs`.
pub mod auto_ml_tables_inputs {
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct Transformation {
/// The transformation that the training pipeline will apply to the input
/// columns.
#[prost(
oneof = "transformation::TransformationDetail",
tags = "1, 2, 3, 4, 5, 6, 7, 8"
)]
pub transformation_detail: ::core::option::Option<
transformation::TransformationDetail,
>,
}
/// Nested message and enum types in `Transformation`.
pub mod transformation {
/// Training pipeline will infer the proper transformation based on the
/// statistic of dataset.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AutoTransformation {
#[prost(string, tag = "1")]
pub column_name: ::prost::alloc::string::String,
}
/// Training pipeline will perform following transformation functions.
/// * The value converted to float32.
/// * The z_score of the value.
/// * log(value+1) when the value is greater than or equal to 0. Otherwise,
/// this transformation is not applied and the value is considered a
/// missing value.
/// * z_score of log(value+1) when the value is greater than or equal to 0.
/// Otherwise, this transformation is not applied and the value is
/// considered a missing value.
/// * A boolean value that indicates whether the value is valid.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NumericTransformation {
#[prost(string, tag = "1")]
pub column_name: ::prost::alloc::string::String,
/// If invalid values is allowed, the training pipeline will create a
/// boolean feature that indicated whether the value is valid.
/// Otherwise, the training pipeline will discard the input row from
/// trainining data.
#[prost(bool, tag = "2")]
pub invalid_values_allowed: bool,
}
/// Training pipeline will perform following transformation functions.
/// * The categorical string as is--no change to case, punctuation,
/// spelling,
/// tense, and so on.
/// * Convert the category name to a dictionary lookup index and generate an
/// embedding for each index.
/// * Categories that appear less than 5 times in the training dataset are
/// treated as the "unknown" category. The "unknown" category gets its own
/// special lookup index and resulting embedding.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CategoricalTransformation {
#[prost(string, tag = "1")]
pub column_name: ::prost::alloc::string::String,
}
/// Training pipeline will perform following transformation functions.
/// * Apply the transformation functions for Numerical columns.
/// * Determine the year, month, day,and weekday. Treat each value from the
/// * timestamp as a Categorical column.
/// * Invalid numerical values (for example, values that fall outside of a
/// typical timestamp range, or are extreme values) receive no special
/// treatment and are not removed.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TimestampTransformation {
#[prost(string, tag = "1")]
pub column_name: ::prost::alloc::string::String,
/// The format in which that time field is expressed. The time_format must
/// either be one of:
/// * `unix-seconds`
/// * `unix-milliseconds`
/// * `unix-microseconds`
/// * `unix-nanoseconds`
/// (for respectively number of seconds, milliseconds, microseconds and
/// nanoseconds since start of the Unix epoch);
/// or be written in `strftime` syntax. If time_format is not set, then the
/// default format is RFC 3339 `date-time` format, where
/// `time-offset` = `"Z"` (e.g. 1985-04-12T23:20:50.52Z)
#[prost(string, tag = "2")]
pub time_format: ::prost::alloc::string::String,
/// If invalid values is allowed, the training pipeline will create a
/// boolean feature that indicated whether the value is valid.
/// Otherwise, the training pipeline will discard the input row from
/// trainining data.
#[prost(bool, tag = "3")]
pub invalid_values_allowed: bool,
}
/// Training pipeline will perform following transformation functions.
/// * The text as is--no change to case, punctuation, spelling, tense, and
/// so
/// on.
/// * Tokenize text to words. Convert each words to a dictionary lookup
/// index
/// and generate an embedding for each index. Combine the embedding of all
/// elements into a single embedding using the mean.
/// * Tokenization is based on unicode script boundaries.
/// * Missing values get their own lookup index and resulting embedding.
/// * Stop-words receive no special treatment and are not removed.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TextTransformation {
#[prost(string, tag = "1")]
pub column_name: ::prost::alloc::string::String,
}
/// Treats the column as numerical array and performs following
/// transformation functions.
/// * All transformations for Numerical types applied to the average of the
/// all elements.
/// * The average of empty arrays is treated as zero.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NumericArrayTransformation {
#[prost(string, tag = "1")]
pub column_name: ::prost::alloc::string::String,
/// If invalid values is allowed, the training pipeline will create a
/// boolean feature that indicated whether the value is valid.
/// Otherwise, the training pipeline will discard the input row from
/// trainining data.
#[prost(bool, tag = "2")]
pub invalid_values_allowed: bool,
}
/// Treats the column as categorical array and performs following
/// transformation functions.
/// * For each element in the array, convert the category name to a
/// dictionary
/// lookup index and generate an embedding for each index.
/// Combine the embedding of all elements into a single embedding using
/// the mean.
/// * Empty arrays treated as an embedding of zeroes.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CategoricalArrayTransformation {
#[prost(string, tag = "1")]
pub column_name: ::prost::alloc::string::String,
}
/// Treats the column as text array and performs following transformation
/// functions.
/// * Concatenate all text values in the array into a single text value
/// using
/// a space (" ") as a delimiter, and then treat the result as a single
/// text value. Apply the transformations for Text columns.
/// * Empty arrays treated as an empty text.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct TextArrayTransformation {
#[prost(string, tag = "1")]
pub column_name: ::prost::alloc::string::String,
}
/// The transformation that the training pipeline will apply to the input
/// columns.
#[derive(Clone, PartialEq, ::prost::Oneof)]
pub enum TransformationDetail {
#[prost(message, tag = "1")]
Auto(AutoTransformation),
#[prost(message, tag = "2")]
Numeric(NumericTransformation),
#[prost(message, tag = "3")]
Categorical(CategoricalTransformation),
#[prost(message, tag = "4")]
Timestamp(TimestampTransformation),
#[prost(message, tag = "5")]
Text(TextTransformation),
#[prost(message, tag = "6")]
RepeatedNumeric(NumericArrayTransformation),
#[prost(message, tag = "7")]
RepeatedCategorical(CategoricalArrayTransformation),
#[prost(message, tag = "8")]
RepeatedText(TextArrayTransformation),
}
}
/// Additional optimization objective configuration. Required for
/// `maximize-precision-at-recall` and `maximize-recall-at-precision`,
/// otherwise unused.
#[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
pub enum AdditionalOptimizationObjectiveConfig {
/// Required when optimization_objective is "maximize-precision-at-recall".
/// Must be between 0 and 1, inclusive.
#[prost(float, tag = "5")]
OptimizationObjectiveRecallValue(f32),
/// Required when optimization_objective is "maximize-recall-at-precision".
/// Must be between 0 and 1, inclusive.
#[prost(float, tag = "6")]
OptimizationObjectivePrecisionValue(f32),
}
}
/// Model metadata specific to AutoML Tables.
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AutoMlTablesMetadata {
/// Output only. The actual training cost of the model, expressed in milli
/// node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed
/// to not exceed the train budget.
#[prost(int64, tag = "1")]
pub train_cost_milli_node_hours: i64,
}