reid from https://github.com/michuanhaohao/reid-strong-baseline
zhangmeng
2020-01-11 bdf3ad71583fb4ef100d3819ecdae8fd9f70083e
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
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
#pragma once
 
// @generated by aten/src/ATen/gen.py
 
#include <ATen/Context.h>
#include <c10/core/ScalarType.h>
#include <c10/core/TensorOptions.h>
#include <ATen/core/Reduction.h>
#include <ATen/core/EnableNamedTensor.h>
 
#include <array>
#include <functional>
#include <string>
#include <tuple>
#include <vector>
 
namespace c10 {
class Scalar;
}
namespace at {
struct Generator;
class Tensor;
struct Type;
} // namespace at
 
namespace at {
namespace native {
 
// These functions are defined in native/TensorFactories.cpp.
#define TENSOR(T, S)                                                          \
  CAFFE2_API Tensor tensor(ArrayRef<T> values, const TensorOptions& options); \
  inline Tensor tensor(                                                       \
      std::initializer_list<T> values, const TensorOptions& options) {        \
    return native::tensor(ArrayRef<T>(values), options);                      \
  }                                                                           \
  inline Tensor tensor(T value, const TensorOptions& options) {               \
    return native::tensor(ArrayRef<T>(value), options);                       \
  }                                                                           \
  inline Tensor tensor(ArrayRef<T> values) {                                  \
    return native::tensor(std::move(values), at::dtype(k##S));                \
  }                                                                           \
  inline Tensor tensor(std::initializer_list<T> values) {                     \
    return native::tensor(ArrayRef<T>(values));                               \
  }                                                                           \
  inline Tensor tensor(T value) {                                             \
    return native::tensor(ArrayRef<T>(value));                                \
  }
AT_FORALL_SCALAR_TYPES_AND3(Bool, Half, BFloat16, TENSOR)
#undef TENSOR
 
CAFFE2_API Tensor _cast_Byte(const Tensor & self, bool non_blocking=false);
CAFFE2_API Tensor _cast_Char(const Tensor & self, bool non_blocking=false);
CAFFE2_API Tensor _cast_Double(const Tensor & self, bool non_blocking=false);
CAFFE2_API Tensor _cast_Float(const Tensor & self, bool non_blocking=false);
CAFFE2_API Tensor _cast_Int(const Tensor & self, bool non_blocking=false);
CAFFE2_API Tensor _cast_Long(const Tensor & self, bool non_blocking=false);
CAFFE2_API Tensor _cast_Short(const Tensor & self, bool non_blocking=false);
CAFFE2_API Tensor _cast_Half(const Tensor & self, bool non_blocking=false);
CAFFE2_API void backward(const Tensor & self, const Tensor & gradient={}, bool keep_graph=false, bool create_graph=false);
CAFFE2_API void set_data(const Tensor & self, const Tensor & new_data);
CAFFE2_API Tensor data(const Tensor & self);
CAFFE2_API bool is_leaf(const Tensor & self);
CAFFE2_API int64_t output_nr(const Tensor & self);
CAFFE2_API int64_t _version(const Tensor & self);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & rename_(Tensor & self, c10::optional<DimnameList> names);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor rename(const Tensor & self, c10::optional<DimnameList> names);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor align_to(const Tensor & self, DimnameList names);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor align_as(const Tensor & self, const Tensor & other);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::vector<Tensor> align_tensors(TensorList tensors);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor refine_names(const Tensor & self, DimnameList names);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor unflatten(const Tensor & self, Dimname dim, IntArrayRef sizes, DimnameList names);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor unflatten(const Tensor & self, int64_t dim, IntArrayRef sizes, DimnameList names);
#endif
CAFFE2_API std::tuple<Tensor,Tensor> _cudnn_ctc_loss(const Tensor & log_probs, const Tensor & targets, IntArrayRef input_lengths, IntArrayRef target_lengths, int64_t blank, bool deterministic, bool zero_infinity);
CAFFE2_API Tensor _cudnn_rnn_flatten_weight(TensorList weight_arr, int64_t weight_stride0, int64_t input_size, int64_t mode, int64_t hidden_size, int64_t num_layers, bool batch_first, bool bidirectional);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor,Tensor,Tensor> _cudnn_rnn(const Tensor & input, TensorList weight, int64_t weight_stride0, const Tensor & weight_buf, const Tensor & hx, const Tensor & cx, int64_t mode, int64_t hidden_size, int64_t num_layers, bool batch_first, double dropout, bool train, bool bidirectional, IntArrayRef batch_sizes, const Tensor & dropout_state);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor,std::vector<Tensor>> _cudnn_rnn_backward(const Tensor & input, TensorList weight, int64_t weight_stride0, const Tensor & weight_buf, const Tensor & hx, const Tensor & cx, const Tensor & output, const Tensor & grad_output, const Tensor & grad_hy, const Tensor & grad_cy, int64_t mode, int64_t hidden_size, int64_t num_layers, bool batch_first, double dropout, bool train, bool bidirectional, IntArrayRef batch_sizes, const Tensor & dropout_state, const Tensor & reserve, std::array<bool,4> output_mask);
CAFFE2_API Tensor _cudnn_init_dropout_state(double dropout, bool train, int64_t dropout_seed, const TensorOptions & options);
CAFFE2_API int64_t _debug_has_internal_overlap(const Tensor & self);
CAFFE2_API std::tuple<Tensor,Tensor> fused_dropout_cuda(const Tensor & self, double p, Generator * generator=nullptr);
CAFFE2_API Tensor masked_scale_cuda(const Tensor & self, const Tensor & mask, double scale);
CAFFE2_API std::tuple<Tensor,Tensor> _sobol_engine_draw(const Tensor & quasi, int64_t n, const Tensor & sobolstate, int64_t dimension, int64_t num_generated, c10::optional<ScalarType> dtype);
CAFFE2_API Tensor & _sobol_engine_ff_(Tensor & self, int64_t n, const Tensor & sobolstate, int64_t dimension, int64_t num_generated);
CAFFE2_API Tensor & _sobol_engine_scramble_(Tensor & self, const Tensor & ltm, int64_t dimension);
CAFFE2_API Tensor & _sobol_engine_initialize_state_(Tensor & self, int64_t dimension);
CAFFE2_API Tensor _reshape_from_tensor(const Tensor & self, const Tensor & shape);
CAFFE2_API Tensor _shape_as_tensor(const Tensor & self);
CAFFE2_API Tensor dropout(const Tensor & input, double p, bool train);
CAFFE2_API Tensor & dropout_(Tensor & self, double p, bool train);
CAFFE2_API Tensor feature_dropout(const Tensor & input, double p, bool train);
CAFFE2_API Tensor & feature_dropout_(Tensor & self, double p, bool train);
CAFFE2_API Tensor alpha_dropout(const Tensor & input, double p, bool train);
CAFFE2_API Tensor & alpha_dropout_(Tensor & self, double p, bool train);
CAFFE2_API Tensor feature_alpha_dropout(const Tensor & input, double p, bool train);
CAFFE2_API Tensor & feature_alpha_dropout_(Tensor & self, double p, bool train);
CAFFE2_API Tensor abs(const Tensor & self);
CAFFE2_API Tensor & _abs__cpu(Tensor & self);
CAFFE2_API Tensor & _abs__cuda(Tensor & self);
CAFFE2_API Tensor & _abs_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _abs_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor acos(const Tensor & self);
CAFFE2_API Tensor & _acos__cpu(Tensor & self);
CAFFE2_API Tensor & _acos__cuda(Tensor & self);
CAFFE2_API Tensor & _acos_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _acos_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor avg_pool1d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true);
CAFFE2_API Tensor adaptive_avg_pool1d(const Tensor & self, IntArrayRef output_size);
CAFFE2_API std::tuple<Tensor,Tensor> adaptive_max_pool1d(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor add(const Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor mkldnn_add(const Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor add_sparse(const Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor & add_(Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor & mkldnn_add_(Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor & add_sparse_(Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor & add_out(Tensor & out, const Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor & mkldnn_add_out(Tensor & out, const Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor & add_out_sparse_cpu(Tensor & out, const Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor & add_out_sparse_cuda(Tensor & out, const Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor add(const Tensor & self, Scalar other, Scalar alpha=1);
CAFFE2_API Tensor & add_(Tensor & self, Scalar other, Scalar alpha=1);
CAFFE2_API Tensor addr(const Tensor & self, const Tensor & vec1, const Tensor & vec2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & addr_(Tensor & self, const Tensor & vec1, const Tensor & vec2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & addr_out(Tensor & out, const Tensor & self, const Tensor & vec1, const Tensor & vec2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor affine_grid_generator(const Tensor & theta, IntArrayRef size, bool align_corners);
CAFFE2_API Tensor affine_grid_generator_backward(const Tensor & grad, IntArrayRef size, bool align_corners);
CAFFE2_API Tensor all(const Tensor & self, int64_t dim, bool keepdim=false);
CAFFE2_API Tensor & all_out(Tensor & out, const Tensor & self, int64_t dim, bool keepdim=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor all(const Tensor & self, Dimname dim, bool keepdim=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & all_out(Tensor & out, const Tensor & self, Dimname dim, bool keepdim=false);
#endif
CAFFE2_API bool allclose(const Tensor & self, const Tensor & other, double rtol=1e-05, double atol=1e-08, bool equal_nan=false);
CAFFE2_API Tensor any(const Tensor & self, int64_t dim, bool keepdim=false);
CAFFE2_API Tensor & any_out(Tensor & out, const Tensor & self, int64_t dim, bool keepdim=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor any(const Tensor & self, Dimname dim, bool keepdim=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & any_out(Tensor & out, const Tensor & self, Dimname dim, bool keepdim=false);
#endif
CAFFE2_API Tensor arange(Scalar end, const TensorOptions & options={});
CAFFE2_API Tensor arange(Scalar start, Scalar end, const TensorOptions & options={});
CAFFE2_API Tensor arange(Scalar start, Scalar end, Scalar step, const TensorOptions & options={});
CAFFE2_API Tensor & arange_out(Tensor & out, Scalar end);
CAFFE2_API Tensor & arange_cpu_out(Tensor & out, Scalar start, Scalar end, Scalar step=1);
CAFFE2_API Tensor & arange_cuda_out(Tensor & out, Scalar start, Scalar end, Scalar step=1);
CAFFE2_API Tensor _dim_arange(const Tensor & like, int64_t dim);
CAFFE2_API Tensor argmax(const Tensor & self, c10::optional<int64_t> dim=c10::nullopt, bool keepdim=false);
CAFFE2_API Tensor argmin(const Tensor & self, c10::optional<int64_t> dim=c10::nullopt, bool keepdim=false);
CAFFE2_API Tensor as_strided_tensorimpl(const Tensor & self, IntArrayRef size, IntArrayRef stride, c10::optional<int64_t> storage_offset=c10::nullopt);
CAFFE2_API Tensor as_strided_qtensorimpl(const Tensor & self, IntArrayRef size, IntArrayRef stride, c10::optional<int64_t> storage_offset=c10::nullopt);
CAFFE2_API Tensor & as_strided_(Tensor & self, IntArrayRef size, IntArrayRef stride, c10::optional<int64_t> storage_offset=c10::nullopt);
CAFFE2_API Tensor asin(const Tensor & self);
CAFFE2_API Tensor & _asin__cpu(Tensor & self);
CAFFE2_API Tensor & _asin__cuda(Tensor & self);
CAFFE2_API Tensor & _asin_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _asin_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor atan(const Tensor & self);
CAFFE2_API Tensor & _atan__cpu(Tensor & self);
CAFFE2_API Tensor & _atan__cuda(Tensor & self);
CAFFE2_API Tensor & _atan_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _atan_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor baddbmm_cpu(const Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor baddbmm_cuda(const Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & baddbmm__cpu(Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & baddbmm__cuda(Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & _baddbmm_mkl_(Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & baddbmm_out_cpu(Tensor & out, const Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & baddbmm_out_cuda(Tensor & out, const Tensor & self, const Tensor & batch1, const Tensor & batch2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor bartlett_window(int64_t window_length, const TensorOptions & options={});
CAFFE2_API Tensor bartlett_window(int64_t window_length, bool periodic, const TensorOptions & options={});
CAFFE2_API Tensor batch_norm(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double momentum, double eps, bool cudnn_enabled);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor,int64_t> _batch_norm_impl_index(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double momentum, double eps, bool cudnn_enabled);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> _batch_norm_impl_index_backward(int64_t impl_index, const Tensor & input, const Tensor & grad_output, const Tensor & weight, const Tensor & running_mean, const Tensor & running_var, const Tensor & save_mean, const Tensor & save_var_transform, bool train, double eps, std::array<bool,3> output_mask);
CAFFE2_API Tensor bernoulli(const Tensor & self, Generator * generator=nullptr);
CAFFE2_API Tensor & bernoulli_out(Tensor & out, const Tensor & self, Generator * generator=nullptr);
CAFFE2_API Tensor & bernoulli_tensor_cpu_(Tensor & self, const Tensor & p, Generator * generator=nullptr);
CAFFE2_API Tensor & bernoulli_tensor_cuda_(Tensor & self, const Tensor & p, Generator * generator=nullptr);
CAFFE2_API Tensor & bernoulli_scalar_cpu_(Tensor & self, double p=0.5, Generator * generator=nullptr);
CAFFE2_API Tensor & bernoulli_scalar_cuda_(Tensor & self, double p=0.5, Generator * generator=nullptr);
CAFFE2_API Tensor bernoulli(const Tensor & self, double p, Generator * generator=nullptr);
CAFFE2_API Tensor bilinear(const Tensor & input1, const Tensor & input2, const Tensor & weight, const Tensor & bias);
CAFFE2_API Tensor binary_cross_entropy_with_logits(const Tensor & self, const Tensor & target, const Tensor & weight={}, const Tensor & pos_weight={}, int64_t reduction=Reduction::Mean);
CAFFE2_API Tensor binary_cross_entropy_with_logits_backward(const Tensor & grad_output, const Tensor & self, const Tensor & target, const Tensor & weight={}, const Tensor & pos_weight={}, int64_t reduction=Reduction::Mean);
CAFFE2_API Tensor _bincount_cpu(const Tensor & self, const Tensor & weights={}, int64_t minlength=0);
CAFFE2_API Tensor _bincount_cuda(const Tensor & self, const Tensor & weights={}, int64_t minlength=0);
CAFFE2_API Tensor bitwise_not(const Tensor & self);
CAFFE2_API Tensor & bitwise_not_(Tensor & self);
CAFFE2_API Tensor & bitwise_not_out(Tensor & out, const Tensor & self);
CAFFE2_API Tensor logical_not(const Tensor & self);
CAFFE2_API Tensor & logical_not_(Tensor & self);
CAFFE2_API Tensor & logical_not_out(Tensor & out, const Tensor & self);
CAFFE2_API Tensor logical_xor(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & logical_xor_(Tensor & self, const Tensor & other);
CAFFE2_API Tensor & logical_xor_out(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor blackman_window(int64_t window_length, const TensorOptions & options={});
CAFFE2_API Tensor blackman_window(int64_t window_length, bool periodic, const TensorOptions & options={});
CAFFE2_API Tensor bmm_cpu(const Tensor & self, const Tensor & mat2);
CAFFE2_API Tensor bmm_cuda(const Tensor & self, const Tensor & mat2);
CAFFE2_API Tensor & bmm_out_cpu(Tensor & out, const Tensor & self, const Tensor & mat2);
CAFFE2_API Tensor & bmm_out_cuda(Tensor & out, const Tensor & self, const Tensor & mat2);
CAFFE2_API std::vector<Tensor> broadcast_tensors(TensorList tensors);
CAFFE2_API Tensor cat(TensorList tensors, int64_t dim=0);
CAFFE2_API Tensor & cat_out(Tensor & out, TensorList tensors, int64_t dim=0);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor cat(TensorList tensors, Dimname dim);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & cat_out(Tensor & out, TensorList tensors, Dimname dim);
#endif
CAFFE2_API Tensor ceil(const Tensor & self);
CAFFE2_API Tensor & ceil_(Tensor & self);
CAFFE2_API Tensor & ceil_out(Tensor & out, const Tensor & self);
CAFFE2_API Tensor chain_matmul(TensorList matrices);
CAFFE2_API std::vector<Tensor> chunk(const Tensor & self, int64_t chunks, int64_t dim=0);
CAFFE2_API Tensor clamp(const Tensor & self, c10::optional<Scalar> min=c10::nullopt, c10::optional<Scalar> max=c10::nullopt);
CAFFE2_API Tensor & _clamp__cpu(Tensor & self, c10::optional<Scalar> min=c10::nullopt, c10::optional<Scalar> max=c10::nullopt);
CAFFE2_API Tensor & _clamp__cuda(Tensor & self, c10::optional<Scalar> min=c10::nullopt, c10::optional<Scalar> max=c10::nullopt);
CAFFE2_API Tensor & _clamp_out_cpu(Tensor & out, const Tensor & self, c10::optional<Scalar> min=c10::nullopt, c10::optional<Scalar> max=c10::nullopt);
CAFFE2_API Tensor & _clamp_out_cuda(Tensor & out, const Tensor & self, c10::optional<Scalar> min=c10::nullopt, c10::optional<Scalar> max=c10::nullopt);
CAFFE2_API Tensor clamp_max(const Tensor & self, Scalar max);
CAFFE2_API Tensor & _clamp_max__cpu(Tensor & self, Scalar max);
CAFFE2_API Tensor & _clamp_max__cuda(Tensor & self, Scalar max);
CAFFE2_API Tensor & _clamp_max_out_cpu(Tensor & out, const Tensor & self, Scalar max);
CAFFE2_API Tensor & _clamp_max_out_cuda(Tensor & out, const Tensor & self, Scalar max);
CAFFE2_API Tensor clamp_min(const Tensor & self, Scalar min);
CAFFE2_API Tensor & _clamp_min__cpu(Tensor & self, Scalar min);
CAFFE2_API Tensor & _clamp_min__cuda(Tensor & self, Scalar min);
CAFFE2_API Tensor & _clamp_min_out_cpu(Tensor & out, const Tensor & self, Scalar min);
CAFFE2_API Tensor & _clamp_min_out_cuda(Tensor & out, const Tensor & self, Scalar min);
CAFFE2_API bool cudnn_is_acceptable(const Tensor & self);
CAFFE2_API Tensor constant_pad_nd(const Tensor & self, IntArrayRef pad, Scalar value=0);
CAFFE2_API Tensor contiguous(const Tensor & self, MemoryFormat memory_format=MemoryFormat::Contiguous);
CAFFE2_API Tensor convolution(const Tensor & input, const Tensor & weight, const Tensor & bias, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool transposed, IntArrayRef output_padding, int64_t groups);
CAFFE2_API Tensor convolution_overrideable(const Tensor & input, const Tensor & weight, const Tensor & bias, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool transposed, IntArrayRef output_padding, int64_t groups);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> convolution_backward_overrideable(const Tensor & grad_output, const Tensor & input, const Tensor & weight, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool transposed, IntArrayRef output_padding, int64_t groups, std::array<bool,3> output_mask);
CAFFE2_API Tensor _convolution(const Tensor & input, const Tensor & weight, const Tensor & bias, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool transposed, IntArrayRef output_padding, int64_t groups, bool benchmark, bool deterministic, bool cudnn_enabled);
CAFFE2_API Tensor _convolution_nogroup(const Tensor & input, const Tensor & weight, const Tensor & bias, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool transposed, IntArrayRef output_padding);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> _convolution_double_backward(const Tensor & ggI, const Tensor & ggW, const Tensor & ggb, const Tensor & gO, const Tensor & weight, const Tensor & self, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool transposed, IntArrayRef output_padding, int64_t groups, bool benchmark, bool deterministic, bool cudnn_enabled, std::array<bool,3> output_mask);
CAFFE2_API Tensor conv1d(const Tensor & input, const Tensor & weight, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1, int64_t groups=1);
CAFFE2_API Tensor conv2d(const Tensor & input, const Tensor & weight, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1, int64_t groups=1);
CAFFE2_API Tensor conv3d(const Tensor & input, const Tensor & weight, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1, int64_t groups=1);
CAFFE2_API Tensor conv_tbc(const Tensor & self, const Tensor & weight, const Tensor & bias, int64_t pad=0);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> conv_tbc_backward(const Tensor & self, const Tensor & input, const Tensor & weight, const Tensor & bias, int64_t pad);
CAFFE2_API Tensor conv_transpose1d(const Tensor & input, const Tensor & weight, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, int64_t groups=1, IntArrayRef dilation=1);
CAFFE2_API Tensor conv_transpose2d(const Tensor & input, const Tensor & weight, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, int64_t groups=1, IntArrayRef dilation=1);
CAFFE2_API Tensor conv_transpose3d(const Tensor & input, const Tensor & weight, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, int64_t groups=1, IntArrayRef dilation=1);
CAFFE2_API Tensor & copy_(Tensor & self, const Tensor & src, bool non_blocking=false);
CAFFE2_API Tensor cos(const Tensor & self);
CAFFE2_API Tensor & _cos__cpu(Tensor & self);
CAFFE2_API Tensor & _cos__cuda(Tensor & self);
CAFFE2_API Tensor & _cos_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _cos_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor cosh(const Tensor & self);
CAFFE2_API Tensor & _cosh__cpu(Tensor & self);
CAFFE2_API Tensor & _cosh__cuda(Tensor & self);
CAFFE2_API Tensor & _cosh_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _cosh_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor cosine_embedding_loss(const Tensor & input1, const Tensor & input2, const Tensor & target, double margin=0.0, int64_t reduction=Reduction::Mean);
CAFFE2_API Tensor cudnn_affine_grid_generator_forward(const Tensor & theta, int64_t N, int64_t C, int64_t H, int64_t W);
CAFFE2_API Tensor cudnn_affine_grid_generator_backward(const Tensor & grad, int64_t N, int64_t C, int64_t H, int64_t W);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> cudnn_batch_norm(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double exponential_average_factor, double epsilon);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> cudnn_batch_norm_backward(const Tensor & input, const Tensor & grad_output, const Tensor & weight, const Tensor & running_mean, const Tensor & running_var, const Tensor & save_mean, const Tensor & save_var, double epsilon);
CAFFE2_API Tensor cudnn_convolution(const Tensor & self, const Tensor & weight, const Tensor & bias, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API Tensor cudnn_convolution_backward_input(IntArrayRef self_size, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> cudnn_convolution_backward(const Tensor & self, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic, std::array<bool,3> output_mask);
CAFFE2_API Tensor cudnn_convolution_backward_bias(const Tensor & grad_output);
CAFFE2_API Tensor cudnn_convolution_backward_weight(IntArrayRef weight_size, const Tensor & grad_output, const Tensor & self, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API Tensor cudnn_convolution_transpose(const Tensor & self, const Tensor & weight, const Tensor & bias, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> cudnn_convolution_transpose_backward(const Tensor & self, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic, std::array<bool,3> output_mask);
CAFFE2_API Tensor cudnn_convolution_backward_bias(const Tensor & grad_output);
CAFFE2_API Tensor cudnn_convolution_transpose_backward_input(const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API Tensor cudnn_convolution_transpose_backward_weight(IntArrayRef weight_size, const Tensor & grad_output, const Tensor & self, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API Tensor cudnn_grid_sampler_forward(const Tensor & self, const Tensor & grid);
CAFFE2_API std::tuple<Tensor,Tensor> cudnn_grid_sampler_backward(const Tensor & self, const Tensor & grid, const Tensor & grad_output);
CAFFE2_API Tensor cumsum(const Tensor & self, int64_t dim, c10::optional<ScalarType> dtype=c10::nullopt);
CAFFE2_API Tensor & cumsum_out(Tensor & out, const Tensor & self, int64_t dim, c10::optional<ScalarType> dtype=c10::nullopt);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor cumsum(const Tensor & self, Dimname dim, c10::optional<ScalarType> dtype=c10::nullopt);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & cumsum_out(Tensor & out, const Tensor & self, Dimname dim, c10::optional<ScalarType> dtype=c10::nullopt);
#endif
CAFFE2_API Tensor cumprod(const Tensor & self, int64_t dim, c10::optional<ScalarType> dtype=c10::nullopt);
CAFFE2_API Tensor & cumprod_out(Tensor & out, const Tensor & self, int64_t dim, c10::optional<ScalarType> dtype=c10::nullopt);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor cumprod(const Tensor & self, Dimname dim, c10::optional<ScalarType> dtype=c10::nullopt);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & cumprod_out(Tensor & out, const Tensor & self, Dimname dim, c10::optional<ScalarType> dtype=c10::nullopt);
#endif
CAFFE2_API Tensor ctc_loss(const Tensor & log_probs, const Tensor & targets, IntArrayRef input_lengths, IntArrayRef target_lengths, int64_t blank=0, int64_t reduction=Reduction::Mean, bool zero_infinity=false);
CAFFE2_API Tensor ctc_loss(const Tensor & log_probs, const Tensor & targets, const Tensor & input_lengths, const Tensor & target_lengths, int64_t blank=0, int64_t reduction=Reduction::Mean, bool zero_infinity=false);
CAFFE2_API std::tuple<Tensor,Tensor> ctc_loss_cpu(const Tensor & log_probs, const Tensor & targets, IntArrayRef input_lengths, IntArrayRef target_lengths, int64_t blank=0, bool zero_infinity=false);
CAFFE2_API std::tuple<Tensor,Tensor> ctc_loss_gpu(const Tensor & log_probs, const Tensor & targets, IntArrayRef input_lengths, IntArrayRef target_lengths, int64_t blank=0, bool zero_infinity=false);
CAFFE2_API Tensor ctc_loss_backward_cpu(const Tensor & grad, const Tensor & log_probs, const Tensor & targets, IntArrayRef input_lengths, IntArrayRef target_lengths, const Tensor & neg_log_likelihood, const Tensor & log_alpha, int64_t blank, bool zero_infinity=false);
CAFFE2_API Tensor ctc_loss_backward_gpu(const Tensor & grad, const Tensor & log_probs, const Tensor & targets, IntArrayRef input_lengths, IntArrayRef target_lengths, const Tensor & neg_log_likelihood, const Tensor & log_alpha, int64_t blank, bool zero_infinity=false);
CAFFE2_API Tensor det(const Tensor & self);
CAFFE2_API Tensor diag_embed(const Tensor & self, int64_t offset=0, int64_t dim1=-2, int64_t dim2=-1);
CAFFE2_API Tensor diagflat(const Tensor & self, int64_t offset=0);
CAFFE2_API Tensor diagonal(const Tensor & self, int64_t offset=0, int64_t dim1=0, int64_t dim2=1);
CAFFE2_API Tensor & fill_diagonal_(Tensor & self, Scalar fill_value, bool wrap=false);
CAFFE2_API Tensor div(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor div_sparse(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & div_(Tensor & self, const Tensor & other);
CAFFE2_API Tensor & div_sparse_(Tensor & self, const Tensor & other);
CAFFE2_API Tensor & div_out(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & div_out_sparse_zerodim(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor div(const Tensor & self, Scalar other);
CAFFE2_API Tensor & div_(Tensor & self, Scalar other);
CAFFE2_API Tensor & dot_out(Tensor & out, const Tensor & self, const Tensor & tensor);
CAFFE2_API Tensor einsum(std::string equation, TensorList tensors);
CAFFE2_API Tensor embedding(const Tensor & weight, const Tensor & indices, int64_t padding_idx=-1, bool scale_grad_by_freq=false, bool sparse=false);
CAFFE2_API Tensor embedding_backward(const Tensor & grad, const Tensor & indices, int64_t num_weights, int64_t padding_idx, bool scale_grad_by_freq, bool sparse);
CAFFE2_API Tensor embedding_dense_backward_cpu(const Tensor & grad_output, const Tensor & indices, int64_t num_weights, int64_t padding_idx, bool scale_grad_by_freq);
CAFFE2_API Tensor embedding_dense_backward_cuda(const Tensor & grad_output, const Tensor & indices, int64_t num_weights, int64_t padding_idx, bool scale_grad_by_freq);
CAFFE2_API Tensor & embedding_renorm_cpu_(Tensor & self, const Tensor & indices, double max_norm, double norm_type);
CAFFE2_API Tensor & embedding_renorm_cuda_(Tensor & self, const Tensor & indices, double max_norm, double norm_type);
CAFFE2_API Tensor embedding_sparse_backward(const Tensor & grad, const Tensor & indices, int64_t num_weights, int64_t padding_idx, bool scale_grad_by_freq);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor,Tensor> embedding_bag(const Tensor & weight, const Tensor & indices, const Tensor & offsets, bool scale_grad_by_freq=false, int64_t mode=0, bool sparse=false, const Tensor & per_sample_weights={});
CAFFE2_API std::tuple<Tensor,Tensor,Tensor,Tensor> _embedding_bag_cpu(const Tensor & weight, const Tensor & indices, const Tensor & offsets, bool scale_grad_by_freq=false, int64_t mode=0, bool sparse=false, const Tensor & per_sample_weights={});
CAFFE2_API std::tuple<Tensor,Tensor,Tensor,Tensor> _embedding_bag_cuda(const Tensor & weight, const Tensor & indices, const Tensor & offsets, bool scale_grad_by_freq=false, int64_t mode=0, bool sparse=false, const Tensor & per_sample_weights={});
CAFFE2_API Tensor _embedding_bag_backward(const Tensor & grad, const Tensor & indices, const Tensor & offsets, const Tensor & offset2bag, const Tensor & bag_size, const Tensor & maximum_indices, int64_t num_weights, bool scale_grad_by_freq, int64_t mode, bool sparse, const Tensor & per_sample_weights);
CAFFE2_API Tensor _embedding_bag_sparse_backward(const Tensor & grad, const Tensor & indices, const Tensor & offsets, const Tensor & offset2bag, const Tensor & bag_size, int64_t num_weights, bool scale_grad_by_freq, int64_t mode, const Tensor & per_sample_weights);
CAFFE2_API Tensor _embedding_bag_dense_backward_cpu(const Tensor & grad, const Tensor & indices, const Tensor & offsets, const Tensor & offset2bag, const Tensor & bag_size, const Tensor & maximum_indices, int64_t num_weights, bool scale_grad_by_freq, int64_t mode, const Tensor & per_sample_weights);
CAFFE2_API Tensor _embedding_bag_dense_backward_cuda(const Tensor & grad, const Tensor & indices, const Tensor & offsets, const Tensor & offset2bag, const Tensor & bag_size, const Tensor & maximum_indices, int64_t num_weights, bool scale_grad_by_freq, int64_t mode, const Tensor & per_sample_weights);
CAFFE2_API Tensor _embedding_bag_per_sample_weights_backward_cpu(const Tensor & grad, const Tensor & weight, const Tensor & indices, const Tensor & offsets, const Tensor & offset2bag, int64_t mode);
CAFFE2_API Tensor _embedding_bag_per_sample_weights_backward_cuda(const Tensor & grad, const Tensor & weight, const Tensor & indices, const Tensor & offsets, const Tensor & offset2bag, int64_t mode);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor empty(IntArrayRef size, c10::optional<DimnameList> names, const TensorOptions & options={}, c10::optional<MemoryFormat> memory_format=c10::nullopt);
#endif
CAFFE2_API Tensor empty_cpu(IntArrayRef size, const TensorOptions & options={}, c10::optional<MemoryFormat> memory_format=c10::nullopt);
CAFFE2_API Tensor empty_cuda(IntArrayRef size, const TensorOptions & options={}, c10::optional<MemoryFormat> memory_format=c10::nullopt);
CAFFE2_API Tensor empty_mkldnn(IntArrayRef size, const TensorOptions & options={}, c10::optional<MemoryFormat> memory_format=c10::nullopt);
CAFFE2_API Tensor empty_sparse(IntArrayRef size, const TensorOptions & options={}, c10::optional<MemoryFormat> memory_format=c10::nullopt);
CAFFE2_API Tensor new_empty(const Tensor & self, IntArrayRef size, const TensorOptions & options={});
CAFFE2_API Tensor new_full(const Tensor & self, IntArrayRef size, Scalar fill_value, const TensorOptions & options={});
CAFFE2_API Tensor empty_affine_quantized_other_backends_stub(IntArrayRef size, const TensorOptions & options={}, double scale=1, int64_t zero_point=0, c10::optional<MemoryFormat> memory_format=MemoryFormat::Contiguous);
CAFFE2_API Tensor empty_affine_quantized_cpu(IntArrayRef size, const TensorOptions & options={}, double scale=1, int64_t zero_point=0, c10::optional<MemoryFormat> memory_format=MemoryFormat::Contiguous);
CAFFE2_API Tensor empty_per_channel_affine_quantized_other_backends_stub(IntArrayRef size, const Tensor & scales, const Tensor & zero_points, int64_t axis, const TensorOptions & options={}, c10::optional<MemoryFormat> memory_format=MemoryFormat::Contiguous);
CAFFE2_API Tensor empty_per_channel_affine_quantized_cpu(IntArrayRef size, const Tensor & scales, const Tensor & zero_points, int64_t axis, const TensorOptions & options={}, c10::optional<MemoryFormat> memory_format=MemoryFormat::Contiguous);
CAFFE2_API Tensor & resize_cpu_(Tensor & self, IntArrayRef size);
CAFFE2_API Tensor & resize_cuda_(Tensor & self, IntArrayRef size);
CAFFE2_API Tensor & quantized_resize_cpu_(Tensor & self, IntArrayRef size);
CAFFE2_API Tensor & empty_out(Tensor & out, IntArrayRef size, c10::optional<MemoryFormat> memory_format=c10::nullopt);
CAFFE2_API Tensor empty_like(const Tensor & self);
CAFFE2_API Tensor empty_like(const Tensor & self, const TensorOptions & options, c10::optional<MemoryFormat> memory_format=MemoryFormat::Contiguous);
CAFFE2_API Tensor empty_strided_cpu(IntArrayRef size, IntArrayRef stride, const TensorOptions & options={});
CAFFE2_API Tensor empty_strided_cuda(IntArrayRef size, IntArrayRef stride, const TensorOptions & options={});
CAFFE2_API Tensor erf(const Tensor & self);
CAFFE2_API Tensor & _erf__cpu(Tensor & self);
CAFFE2_API Tensor & _erf__cuda(Tensor & self);
CAFFE2_API Tensor & _erf_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _erf_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor erfc(const Tensor & self);
CAFFE2_API Tensor & _erfc__cpu(Tensor & self);
CAFFE2_API Tensor & _erfc__cuda(Tensor & self);
CAFFE2_API Tensor & _erfc_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _erfc_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor exp(const Tensor & self);
CAFFE2_API Tensor & _exp__cpu(Tensor & self);
CAFFE2_API Tensor & _exp__cuda(Tensor & self);
CAFFE2_API Tensor & _exp_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _exp_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor expm1(const Tensor & self);
CAFFE2_API Tensor & expm1_(Tensor & self);
CAFFE2_API Tensor & expm1_out(Tensor & out, const Tensor & self);
CAFFE2_API Tensor expand(const Tensor & self, IntArrayRef size, bool implicit=false);
CAFFE2_API Tensor expand_as(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor eye(int64_t n, const TensorOptions & options={});
CAFFE2_API Tensor eye(int64_t n, int64_t m, const TensorOptions & options={});
CAFFE2_API Tensor & eye_out_cpu(Tensor & out, int64_t n);
CAFFE2_API Tensor & eye_out_cuda(Tensor & out, int64_t n);
CAFFE2_API Tensor & eye_out_cpu(Tensor & out, int64_t n, int64_t m);
CAFFE2_API Tensor & eye_out_cuda(Tensor & out, int64_t n, int64_t m);
CAFFE2_API Tensor flatten(const Tensor & self, int64_t start_dim=0, int64_t end_dim=-1);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor flatten(const Tensor & self, int64_t start_dim, int64_t end_dim, Dimname out_dim);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor flatten(const Tensor & self, Dimname start_dim, Dimname end_dim, Dimname out_dim);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor flatten(const Tensor & self, DimnameList dims, Dimname out_dim);
#endif
CAFFE2_API Tensor & fill_(Tensor & self, Scalar value);
CAFFE2_API Tensor & fill_(Tensor & self, const Tensor & value);
CAFFE2_API Tensor floor(const Tensor & self);
CAFFE2_API Tensor & floor_(Tensor & self);
CAFFE2_API Tensor & floor_out(Tensor & out, const Tensor & self);
CAFFE2_API Tensor frac(const Tensor & self);
CAFFE2_API Tensor & _frac__cpu(Tensor & self);
CAFFE2_API Tensor & _frac__cuda(Tensor & self);
CAFFE2_API Tensor & _frac_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _frac_out_cuda(Tensor & out, const Tensor & self);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor full(IntArrayRef size, Scalar fill_value, c10::optional<DimnameList> names, const TensorOptions & options={});
#endif
CAFFE2_API Tensor full(IntArrayRef size, Scalar fill_value, const TensorOptions & options={});
CAFFE2_API Tensor & full_out(Tensor & out, IntArrayRef size, Scalar fill_value);
CAFFE2_API Tensor full_like(const Tensor & self, Scalar fill_value);
CAFFE2_API Tensor full_like(const Tensor & self, Scalar fill_value, const TensorOptions & options);
CAFFE2_API Tensor from_file(std::string filename, c10::optional<bool> shared=c10::nullopt, c10::optional<int64_t> size=0, const TensorOptions & options={});
CAFFE2_API Tensor grid_sampler(const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners);
CAFFE2_API Tensor grid_sampler_2d_cpu(const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners);
CAFFE2_API Tensor grid_sampler_2d_cuda(const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners);
CAFFE2_API std::tuple<Tensor,Tensor> grid_sampler_2d_backward_cpu(const Tensor & grad_output, const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners);
CAFFE2_API std::tuple<Tensor,Tensor> grid_sampler_2d_backward_cuda(const Tensor & grad_output, const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners);
CAFFE2_API Tensor grid_sampler_3d_cpu(const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners);
CAFFE2_API Tensor grid_sampler_3d_cuda(const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners);
CAFFE2_API std::tuple<Tensor,Tensor> grid_sampler_3d_backward_cpu(const Tensor & grad_output, const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners);
CAFFE2_API std::tuple<Tensor,Tensor> grid_sampler_3d_backward_cuda(const Tensor & grad_output, const Tensor & input, const Tensor & grid, int64_t interpolation_mode, int64_t padding_mode, bool align_corners);
CAFFE2_API Tensor hann_window(int64_t window_length, const TensorOptions & options={});
CAFFE2_API Tensor hann_window(int64_t window_length, bool periodic, const TensorOptions & options={});
CAFFE2_API Tensor hamming_window(int64_t window_length, const TensorOptions & options={});
CAFFE2_API Tensor hamming_window(int64_t window_length, bool periodic, const TensorOptions & options={});
CAFFE2_API Tensor hamming_window(int64_t window_length, bool periodic, double alpha, const TensorOptions & options={});
CAFFE2_API Tensor hamming_window(int64_t window_length, bool periodic, double alpha, double beta, const TensorOptions & options={});
CAFFE2_API Tensor hinge_embedding_loss(const Tensor & self, const Tensor & target, double margin=1.0, int64_t reduction=Reduction::Mean);
CAFFE2_API Tensor group_norm(const Tensor & input, int64_t num_groups, const Tensor & weight={}, const Tensor & bias={}, double eps=1e-05, bool cudnn_enabled=true);
CAFFE2_API Tensor fft(const Tensor & self, int64_t signal_ndim, bool normalized=false);
CAFFE2_API Tensor ifft(const Tensor & self, int64_t signal_ndim, bool normalized=false);
CAFFE2_API Tensor rfft(const Tensor & self, int64_t signal_ndim, bool normalized=false, bool onesided=true);
CAFFE2_API Tensor irfft(const Tensor & self, int64_t signal_ndim, bool normalized=false, bool onesided=true, IntArrayRef signal_sizes={});
CAFFE2_API Tensor _fft_mkl(const Tensor & self, int64_t signal_ndim, bool complex_input, bool complex_output, bool inverse, IntArrayRef checked_signal_sizes, bool normalized, bool onesided, IntArrayRef output_sizes);
CAFFE2_API Tensor _fft_cufft(const Tensor & self, int64_t signal_ndim, bool complex_input, bool complex_output, bool inverse, IntArrayRef checked_signal_sizes, bool normalized, bool onesided, IntArrayRef output_sizes);
CAFFE2_API int64_t _cufft_get_plan_cache_size(int64_t device_index);
CAFFE2_API int64_t _cufft_get_plan_cache_max_size(int64_t device_index);
CAFFE2_API void _cufft_set_plan_cache_max_size(int64_t device_index, int64_t max_size);
CAFFE2_API void _cufft_clear_plan_cache(int64_t device_index);
CAFFE2_API Tensor index(const Tensor & self, TensorList indices);
CAFFE2_API Tensor & index_copy_(Tensor & self, int64_t dim, const Tensor & index, const Tensor & source);
CAFFE2_API Tensor index_copy(const Tensor & self, int64_t dim, const Tensor & index, const Tensor & source);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & index_copy_(Tensor & self, Dimname dim, const Tensor & index, const Tensor & source);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor index_copy(const Tensor & self, Dimname dim, const Tensor & index, const Tensor & source);
#endif
CAFFE2_API Tensor & index_put_(Tensor & self, TensorList indices, const Tensor & values, bool accumulate=false);
CAFFE2_API Tensor index_put(const Tensor & self, TensorList indices, const Tensor & values, bool accumulate=false);
CAFFE2_API Tensor & _index_put_impl_(Tensor & self, TensorList indices, const Tensor & values, bool accumulate=false, bool unsafe=false);
CAFFE2_API Tensor instance_norm(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool use_input_stats, double momentum, double eps, bool cudnn_enabled);
CAFFE2_API Tensor inverse(const Tensor & self);
CAFFE2_API Tensor & inverse_out(Tensor & out, const Tensor & self);
CAFFE2_API Tensor _inverse_helper_cpu(const Tensor & self);
CAFFE2_API Tensor _inverse_helper_cuda(const Tensor & self);
CAFFE2_API Tensor isclose(const Tensor & self, const Tensor & other, double rtol=1e-05, double atol=1e-08, bool equal_nan=false);
CAFFE2_API Tensor isnan(const Tensor & self);
CAFFE2_API bool is_distributed(const Tensor & self);
CAFFE2_API bool is_floating_point(const Tensor & self);
CAFFE2_API bool is_complex(const Tensor & self);
CAFFE2_API bool is_nonzero(const Tensor & self);
CAFFE2_API bool is_same_size(const Tensor & self, const Tensor & other);
CAFFE2_API bool is_signed(const Tensor & self);
CAFFE2_API Tensor kl_div(const Tensor & self, const Tensor & target, int64_t reduction=Reduction::Mean);
CAFFE2_API Tensor kl_div_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & target, int64_t reduction=Reduction::Mean);
CAFFE2_API Tensor kl_div_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & target, int64_t reduction=Reduction::Mean);
CAFFE2_API std::tuple<Tensor,Tensor> kthvalue(const Tensor & self, int64_t k, int64_t dim=-1, bool keepdim=false);
CAFFE2_API std::tuple<Tensor &,Tensor &> kthvalue_out_cpu(Tensor & values, Tensor & indices, const Tensor & self, int64_t k, int64_t dim=-1, bool keepdim=false);
CAFFE2_API std::tuple<Tensor &,Tensor &> kthvalue_out_cuda(Tensor & values, Tensor & indices, const Tensor & self, int64_t k, int64_t dim=-1, bool keepdim=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor,Tensor> kthvalue(const Tensor & self, int64_t k, Dimname dim, bool keepdim=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor &,Tensor &> kthvalue_out(Tensor & values, Tensor & indices, const Tensor & self, int64_t k, Dimname dim, bool keepdim=false);
#endif
CAFFE2_API Tensor layer_norm(const Tensor & input, IntArrayRef normalized_shape, const Tensor & weight={}, const Tensor & bias={}, double eps=1e-05, bool cudnn_enable=true);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> layer_norm_cpu(const Tensor & input, const Tensor & weight, const Tensor & bias, int64_t M, int64_t N, double eps);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> layer_norm_backward_cpu(const Tensor & grad_out, const Tensor & input, const Tensor & mean, const Tensor & rstd, const Tensor & weight, int64_t M, int64_t N, std::array<bool,3> output_mask);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> layer_norm_double_backward_cpu(const Tensor & ggI, const Tensor & ggW, const Tensor & ggb, const Tensor & gO, const Tensor & input, const Tensor & mean, const Tensor & rstd, const Tensor & weight, int64_t M, int64_t N, std::array<bool,3> output_mask);
CAFFE2_API Tensor linear(const Tensor & input, const Tensor & weight, const Tensor & bias={});
CAFFE2_API Tensor mkldnn_linear(const Tensor & input, const Tensor & weight, const Tensor & bias={});
CAFFE2_API Tensor fbgemm_linear_int8_weight_fp32_activation(const Tensor & input, const Tensor & weight, const Tensor & packed, const Tensor & col_offsets, Scalar weight_scale, Scalar weight_zero_point, const Tensor & bias);
CAFFE2_API Tensor fbgemm_linear_int8_weight(const Tensor & input, const Tensor & weight, const Tensor & packed, const Tensor & col_offsets, Scalar weight_scale, Scalar weight_zero_point, const Tensor & bias);
CAFFE2_API std::tuple<Tensor,Tensor,double,int64_t> fbgemm_linear_quantize_weight(const Tensor & input);
CAFFE2_API Tensor fbgemm_pack_gemm_matrix_fp16(const Tensor & input);
CAFFE2_API Tensor fbgemm_linear_fp16_weight_fp32_activation(const Tensor & input, const Tensor & packed_weight, const Tensor & bias);
CAFFE2_API Tensor fbgemm_linear_fp16_weight(const Tensor & input, const Tensor & packed_weight, const Tensor & bias);
CAFFE2_API Tensor fbgemm_pack_quantized_matrix(const Tensor & input);
CAFFE2_API Tensor fbgemm_pack_quantized_matrix(const Tensor & input, int64_t K, int64_t N);
CAFFE2_API Tensor linspace(Scalar start, Scalar end, int64_t steps=100, const TensorOptions & options={});
CAFFE2_API Tensor & linspace_cpu_out(Tensor & out, Scalar start, Scalar end, int64_t steps=100);
CAFFE2_API Tensor & linspace_cuda_out(Tensor & out, Scalar start, Scalar end, int64_t steps=100);
CAFFE2_API Tensor log(const Tensor & self);
CAFFE2_API Tensor & log_(Tensor & self);
CAFFE2_API Tensor & log_out(Tensor & out, const Tensor & self);
CAFFE2_API Tensor log10(const Tensor & self);
CAFFE2_API Tensor & _log10__cpu(Tensor & self);
CAFFE2_API Tensor & _log10__cuda(Tensor & self);
CAFFE2_API Tensor & _log10_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _log10_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor log1p(const Tensor & self);
CAFFE2_API Tensor & _log1p__cpu(Tensor & self);
CAFFE2_API Tensor & _log1p__cuda(Tensor & self);
CAFFE2_API Tensor & log1p_sparse_(Tensor & self);
CAFFE2_API Tensor & _log1p_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _log1p_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & log1p_out_sparse(Tensor & out, const Tensor & self);
CAFFE2_API Tensor log2(const Tensor & self);
CAFFE2_API Tensor & _log2__cpu(Tensor & self);
CAFFE2_API Tensor & _log2__cuda(Tensor & self);
CAFFE2_API Tensor & _log2_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _log2_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor logdet(const Tensor & self);
CAFFE2_API Tensor logspace(Scalar start, Scalar end, int64_t steps=100, double base=10.0, const TensorOptions & options={});
CAFFE2_API Tensor & logspace_cpu_out(Tensor & out, Scalar start, Scalar end, int64_t steps=100, double base=10.0);
CAFFE2_API Tensor & logspace_cuda_out(Tensor & out, Scalar start, Scalar end, int64_t steps=100, double base=10.0);
CAFFE2_API Tensor log_softmax(const Tensor & self, int64_t dim, c10::optional<ScalarType> dtype=c10::nullopt);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor log_softmax(const Tensor & self, Dimname dim, c10::optional<ScalarType> dtype=c10::nullopt);
#endif
CAFFE2_API Tensor log_softmax_cpu(const Tensor & self, int64_t dim, bool half_to_float);
CAFFE2_API Tensor log_softmax_cuda(const Tensor & self, int64_t dim, bool half_to_float);
CAFFE2_API Tensor log_softmax_backward_cpu(const Tensor & grad_output, const Tensor & output, int64_t dim, const Tensor & self);
CAFFE2_API Tensor log_softmax_backward_cuda(const Tensor & grad_output, const Tensor & output, int64_t dim, const Tensor & self);
CAFFE2_API Tensor logsumexp(const Tensor & self, IntArrayRef dim, bool keepdim=false);
CAFFE2_API Tensor & logsumexp_out(Tensor & out, const Tensor & self, IntArrayRef dim, bool keepdim=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor logsumexp(const Tensor & self, DimnameList dim, bool keepdim=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & logsumexp_out(Tensor & out, const Tensor & self, DimnameList dim, bool keepdim=false);
#endif
CAFFE2_API Tensor margin_ranking_loss(const Tensor & input1, const Tensor & input2, const Tensor & target, double margin=0.0, int64_t reduction=Reduction::Mean);
CAFFE2_API Tensor matmul(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & matmul_out(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor matrix_rank(const Tensor & self, double tol, bool symmetric=false);
CAFFE2_API Tensor matrix_rank(const Tensor & self, bool symmetric=false);
CAFFE2_API Tensor matrix_power(const Tensor & self, int64_t n);
CAFFE2_API std::tuple<Tensor,Tensor> max(const Tensor & self, int64_t dim, bool keepdim=false);
CAFFE2_API std::tuple<Tensor &,Tensor &> max_out(Tensor & max, Tensor & max_values, const Tensor & self, int64_t dim, bool keepdim=false);
CAFFE2_API Tensor max_values(const Tensor & self, IntArrayRef dim, bool keepdim=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor,Tensor> max(const Tensor & self, Dimname dim, bool keepdim=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor &,Tensor &> max_out(Tensor & max, Tensor & max_values, const Tensor & self, Dimname dim, bool keepdim=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor max_values(const Tensor & self, DimnameList dim, bool keepdim=false);
#endif
CAFFE2_API std::tuple<Tensor,Tensor> max_pool1d_with_indices(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API Tensor max_pool1d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API Tensor max_pool2d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API Tensor mkldnn_max_pool2d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API Tensor quantized_max_pool2d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API Tensor max_pool3d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API Tensor mean_cpu_gpu(const Tensor & self, c10::optional<ScalarType> dtype=c10::nullopt);
CAFFE2_API Tensor quantized_mean_cpu(const Tensor & self, c10::optional<ScalarType> dtype=c10::nullopt);
CAFFE2_API Tensor mean_cpu_gpu(const Tensor & self, IntArrayRef dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
CAFFE2_API Tensor quantized_mean_cpu(const Tensor & self, IntArrayRef dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
CAFFE2_API Tensor & mean_out_cpu_gpu(Tensor & out, const Tensor & self, IntArrayRef dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
CAFFE2_API Tensor & quantized_mean_out_cpu(Tensor & out, const Tensor & self, IntArrayRef dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor mean_cpu_gpu(const Tensor & self, DimnameList dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & mean_out_cpu_gpu(Tensor & out, const Tensor & self, DimnameList dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
#endif
CAFFE2_API std::tuple<Tensor,Tensor> median(const Tensor & self, int64_t dim, bool keepdim=false);
CAFFE2_API std::tuple<Tensor &,Tensor &> median_out(Tensor & values, Tensor & indices, const Tensor & self, int64_t dim, bool keepdim=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor,Tensor> median(const Tensor & self, Dimname dim, bool keepdim=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor &,Tensor &> median_out(Tensor & values, Tensor & indices, const Tensor & self, Dimname dim, bool keepdim=false);
#endif
CAFFE2_API std::tuple<Tensor,Tensor> min(const Tensor & self, int64_t dim, bool keepdim=false);
CAFFE2_API std::tuple<Tensor &,Tensor &> min_out(Tensor & min, Tensor & min_indices, const Tensor & self, int64_t dim, bool keepdim=false);
CAFFE2_API Tensor min_values(const Tensor & self, IntArrayRef dim, bool keepdim=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor,Tensor> min(const Tensor & self, Dimname dim, bool keepdim=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor &,Tensor &> min_out(Tensor & min, Tensor & min_indices, const Tensor & self, Dimname dim, bool keepdim=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor min_values(const Tensor & self, DimnameList dim, bool keepdim=false);
#endif
CAFFE2_API Tensor mkldnn_convolution(const Tensor & self, const Tensor & weight, const Tensor & bias, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups);
CAFFE2_API Tensor mkldnn_convolution_backward_input(IntArrayRef self_size, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool bias_defined);
CAFFE2_API std::tuple<Tensor,Tensor> mkldnn_convolution_backward_weights(IntArrayRef weight_size, const Tensor & grad_output, const Tensor & self, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool bias_defined);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> mkldnn_convolution_backward(const Tensor & self, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, std::array<bool,3> output_mask);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> miopen_batch_norm(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double exponential_average_factor, double epsilon);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> miopen_batch_norm_backward(const Tensor & input, const Tensor & grad_output, const Tensor & weight, const Tensor & running_mean, const Tensor & running_var, const Tensor & save_mean, const Tensor & save_var, double epsilon);
CAFFE2_API Tensor miopen_convolution(const Tensor & self, const Tensor & weight, const Tensor & bias, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API Tensor miopen_convolution_backward_input(IntArrayRef self_size, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> miopen_convolution_backward(const Tensor & self, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic, std::array<bool,3> output_mask);
CAFFE2_API Tensor miopen_convolution_backward_bias(const Tensor & grad_output);
CAFFE2_API Tensor miopen_convolution_backward_weight(IntArrayRef weight_size, const Tensor & grad_output, const Tensor & self, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API Tensor miopen_convolution_transpose(const Tensor & self, const Tensor & weight, const Tensor & bias, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> miopen_convolution_transpose_backward(const Tensor & self, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic, std::array<bool,3> output_mask);
CAFFE2_API Tensor miopen_convolution_transpose_backward_input(const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API Tensor miopen_convolution_transpose_backward_weight(IntArrayRef weight_size, const Tensor & grad_output, const Tensor & self, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API Tensor miopen_depthwise_convolution(const Tensor & self, const Tensor & weight, const Tensor & bias, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API Tensor miopen_depthwise_convolution_backward_input(IntArrayRef self_size, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> miopen_depthwise_convolution_backward(const Tensor & self, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic, std::array<bool,3> output_mask);
CAFFE2_API Tensor miopen_depthwise_convolution_backward_weight(IntArrayRef weight_size, const Tensor & grad_output, const Tensor & self, IntArrayRef padding, IntArrayRef stride, IntArrayRef dilation, int64_t groups, bool benchmark, bool deterministic);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor,Tensor,Tensor> miopen_rnn(const Tensor & input, TensorList weight, int64_t weight_stride0, const Tensor & hx, const Tensor & cx, int64_t mode, int64_t hidden_size, int64_t num_layers, bool batch_first, double dropout, bool train, bool bidirectional, IntArrayRef batch_sizes, const Tensor & dropout_state);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor,std::vector<Tensor>> miopen_rnn_backward(const Tensor & input, TensorList weight, int64_t weight_stride0, const Tensor & weight_buf, const Tensor & hx, const Tensor & cx, const Tensor & output, const Tensor & grad_output, const Tensor & grad_hy, const Tensor & grad_cy, int64_t mode, int64_t hidden_size, int64_t num_layers, bool batch_first, double dropout, bool train, bool bidirectional, IntArrayRef batch_sizes, const Tensor & dropout_state, const Tensor & reserve, std::array<bool,4> output_mask);
CAFFE2_API Tensor _sparse_mm(const Tensor & self, const Tensor & mat2);
CAFFE2_API Tensor & _sparse_mm_out(Tensor & out, const Tensor & self, const Tensor & mat2);
CAFFE2_API Tensor _sparse_mm(const Tensor & sparse, const Tensor & dense);
CAFFE2_API std::tuple<Tensor,Tensor> mode(const Tensor & self, int64_t dim=-1, bool keepdim=false);
CAFFE2_API std::tuple<Tensor &,Tensor &> mode_out(Tensor & values, Tensor & indices, const Tensor & self, int64_t dim=-1, bool keepdim=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor,Tensor> mode(const Tensor & self, Dimname dim, bool keepdim=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor &,Tensor &> mode_out(Tensor & values, Tensor & indices, const Tensor & self, Dimname dim, bool keepdim=false);
#endif
CAFFE2_API Tensor mul(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor mkldnn_mul(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor mul_sparse(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & mul_(Tensor & self, const Tensor & other);
CAFFE2_API Tensor & mkldnn_mul_(Tensor & self, const Tensor & other);
CAFFE2_API Tensor & mul_sparse_(Tensor & self, const Tensor & other);
CAFFE2_API Tensor & mul_out(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & mkldnn_mul_out(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & mul_out_sparse_cpu(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & mul_out_sparse_cuda(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor mul(const Tensor & self, Scalar other);
CAFFE2_API Tensor & mul_(Tensor & self, Scalar other);
CAFFE2_API Tensor mvlgamma(const Tensor & self, int64_t p);
CAFFE2_API Tensor & mvlgamma_(Tensor & self, int64_t p);
CAFFE2_API Tensor narrow_copy_dense(const Tensor & self, int64_t dim, int64_t start, int64_t length);
CAFFE2_API Tensor narrow_copy_sparse(const Tensor & self, int64_t dim, int64_t start, int64_t length);
CAFFE2_API Tensor narrow(const Tensor & self, int64_t dim, int64_t start, int64_t length);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> batch_norm_cpu(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double momentum, double eps);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> batch_norm_cuda(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double momentum, double eps);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> mkldnn_batch_norm(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & running_mean, const Tensor & running_var, bool training, double momentum, double eps);
CAFFE2_API std::tuple<Tensor,Tensor> batch_norm_stats_cuda(const Tensor & input, double eps);
CAFFE2_API Tensor batch_norm_elemt_cuda(const Tensor & input, const Tensor & weight, const Tensor & bias, const Tensor & mean, const Tensor & invstd, double eps);
CAFFE2_API std::tuple<Tensor,Tensor> batch_norm_gather_stats_cuda(const Tensor & input, const Tensor & mean, const Tensor & invstd, const Tensor & running_mean, const Tensor & running_var, double momentum, double eps, int64_t count);
CAFFE2_API std::tuple<Tensor,Tensor> batch_norm_gather_stats_with_counts_cuda(const Tensor & input, const Tensor & mean, const Tensor & invstd, const Tensor & running_mean, const Tensor & running_var, double momentum, double eps, IntArrayRef counts);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> batch_norm_backward_cpu(const Tensor & grad_out, const Tensor & input, const Tensor & weight, const Tensor & running_mean, const Tensor & running_var, const Tensor & save_mean, const Tensor & save_invstd, bool train, double eps, std::array<bool,3> output_mask);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> batch_norm_backward_cuda(const Tensor & grad_out, const Tensor & input, const Tensor & weight, const Tensor & running_mean, const Tensor & running_var, const Tensor & save_mean, const Tensor & save_invstd, bool train, double eps, std::array<bool,3> output_mask);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor,Tensor> batch_norm_backward_reduce_cuda(const Tensor & grad_out, const Tensor & input, const Tensor & mean, const Tensor & invstd, const Tensor & weight, bool input_g, bool weight_g, bool bias_g);
CAFFE2_API Tensor batch_norm_backward_elemt_cuda(const Tensor & grad_out, const Tensor & input, const Tensor & mean, const Tensor & invstd, const Tensor & weight, const Tensor & mean_dy, const Tensor & mean_dy_xmu);
CAFFE2_API std::tuple<Tensor,Tensor> batch_norm_update_stats_cpu(const Tensor & input, const Tensor & running_mean, const Tensor & running_var, double momentum);
CAFFE2_API std::tuple<Tensor,Tensor> batch_norm_update_stats_cuda(const Tensor & input, const Tensor & running_mean, const Tensor & running_var, double momentum);
CAFFE2_API bool _nnpack_available();
CAFFE2_API Tensor _nnpack_spatial_convolution(const Tensor & input, const Tensor & weight, const Tensor & bias, IntArrayRef padding);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> _nnpack_spatial_convolution_backward(const Tensor & input, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding, std::array<bool,3> output_mask);
CAFFE2_API Tensor _nnpack_spatial_convolution_backward_input(const Tensor & input, const Tensor & grad_output, const Tensor & weight, IntArrayRef padding);
CAFFE2_API Tensor _nnpack_spatial_convolution_backward_weight(const Tensor & input, IntArrayRef weightsize, const Tensor & grad_output, IntArrayRef padding);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor ones(IntArrayRef size, c10::optional<DimnameList> names, const TensorOptions & options={});
#endif
CAFFE2_API Tensor ones(IntArrayRef size, const TensorOptions & options={});
CAFFE2_API Tensor & ones_out(Tensor & out, IntArrayRef size);
CAFFE2_API Tensor ones_like(const Tensor & self);
CAFFE2_API Tensor ones_like(const Tensor & self, const TensorOptions & options);
CAFFE2_API Tensor pairwise_distance(const Tensor & x1, const Tensor & x2, double p=2, double eps=1e-06, bool keepdim=false);
CAFFE2_API Tensor cdist(const Tensor & x1, const Tensor & x2, double p=2);
CAFFE2_API Tensor _cdist_backward(const Tensor & grad, const Tensor & x1, const Tensor & x2, double p, const Tensor & cdist);
CAFFE2_API Tensor pdist(const Tensor & self, double p=2);
CAFFE2_API Tensor _pdist_forward(const Tensor & self, double p=2);
CAFFE2_API Tensor _pdist_backward(const Tensor & grad, const Tensor & self, double p, const Tensor & pdist);
CAFFE2_API Tensor cosine_similarity(const Tensor & x1, const Tensor & x2, int64_t dim=1, double eps=1e-08);
CAFFE2_API Tensor permute(const Tensor & self, IntArrayRef dims);
CAFFE2_API Tensor numpy_T(const Tensor & self);
CAFFE2_API Tensor pixel_shuffle(const Tensor & self, int64_t upscale_factor);
CAFFE2_API bool is_pinned(const Tensor & self);
CAFFE2_API Tensor pin_memory(const Tensor & self);
CAFFE2_API Tensor pinverse(const Tensor & self, double rcond=1e-15);
CAFFE2_API Tensor poisson_nll_loss(const Tensor & input, const Tensor & target, bool log_input, bool full, double eps, int64_t reduction);
CAFFE2_API Tensor scalar_tensor(Scalar s, const TensorOptions & options={});
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor rand(IntArrayRef size, c10::optional<DimnameList> names, const TensorOptions & options={});
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor rand(IntArrayRef size, Generator * generator, c10::optional<DimnameList> names, const TensorOptions & options={});
#endif
CAFFE2_API Tensor rand(IntArrayRef size, const TensorOptions & options={});
CAFFE2_API Tensor rand(IntArrayRef size, Generator * generator, const TensorOptions & options={});
CAFFE2_API Tensor & rand_out(Tensor & out, IntArrayRef size);
CAFFE2_API Tensor & rand_out(Tensor & out, IntArrayRef size, Generator * generator);
CAFFE2_API Tensor rand_like(const Tensor & self);
CAFFE2_API Tensor rand_like(const Tensor & self, const TensorOptions & options);
CAFFE2_API Tensor randint(int64_t high, IntArrayRef size, const TensorOptions & options={});
CAFFE2_API Tensor randint(int64_t high, IntArrayRef size, Generator * generator, const TensorOptions & options={});
CAFFE2_API Tensor randint(int64_t low, int64_t high, IntArrayRef size, const TensorOptions & options={});
CAFFE2_API Tensor randint(int64_t low, int64_t high, IntArrayRef size, Generator * generator, const TensorOptions & options={});
CAFFE2_API Tensor & randint_out(Tensor & out, int64_t high, IntArrayRef size);
CAFFE2_API Tensor & randint_out(Tensor & out, int64_t high, IntArrayRef size, Generator * generator);
CAFFE2_API Tensor & randint_out(Tensor & out, int64_t low, int64_t high, IntArrayRef size);
CAFFE2_API Tensor & randint_out(Tensor & out, int64_t low, int64_t high, IntArrayRef size, Generator * generator);
CAFFE2_API Tensor randint_like(const Tensor & self, int64_t high);
CAFFE2_API Tensor randint_like(const Tensor & self, int64_t low, int64_t high);
CAFFE2_API Tensor randint_like(const Tensor & self, int64_t high, const TensorOptions & options);
CAFFE2_API Tensor randint_like(const Tensor & self, int64_t low, int64_t high, const TensorOptions & options);
CAFFE2_API Tensor randn(IntArrayRef size, const TensorOptions & options={});
CAFFE2_API Tensor randn(IntArrayRef size, Generator * generator, const TensorOptions & options={});
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor randn(IntArrayRef size, c10::optional<DimnameList> names, const TensorOptions & options={});
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor randn(IntArrayRef size, Generator * generator, c10::optional<DimnameList> names, const TensorOptions & options={});
#endif
CAFFE2_API Tensor & randn_out(Tensor & out, IntArrayRef size);
CAFFE2_API Tensor & randn_out(Tensor & out, IntArrayRef size, Generator * generator);
CAFFE2_API Tensor randn_like(const Tensor & self);
CAFFE2_API Tensor randn_like(const Tensor & self, const TensorOptions & options);
CAFFE2_API Tensor randperm(int64_t n, const TensorOptions & options={});
CAFFE2_API Tensor randperm(int64_t n, Generator * generator, const TensorOptions & options={});
CAFFE2_API Tensor & randperm_out(Tensor & out, int64_t n);
CAFFE2_API Tensor & randperm_out_cpu(Tensor & out, int64_t n, Generator * generator);
CAFFE2_API Tensor & randperm_out_cuda(Tensor & out, int64_t n, Generator * generator);
CAFFE2_API Tensor range(Scalar start, Scalar end, Scalar step=1, const TensorOptions & options={});
CAFFE2_API Tensor range(Scalar start, Scalar end, const TensorOptions & options={});
CAFFE2_API Tensor & range_cpu_out(Tensor & out, Scalar start, Scalar end, Scalar step=1);
CAFFE2_API Tensor & range_cuda_out(Tensor & out, Scalar start, Scalar end, Scalar step=1);
CAFFE2_API Tensor reciprocal(const Tensor & self);
CAFFE2_API Tensor & _reciprocal__cpu(Tensor & self);
CAFFE2_API Tensor & _reciprocal__cuda(Tensor & self);
CAFFE2_API Tensor & _reciprocal_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _reciprocal_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor neg(const Tensor & self);
CAFFE2_API Tensor & neg_(Tensor & self);
CAFFE2_API Tensor & neg_out(Tensor & out, const Tensor & self);
CAFFE2_API Tensor repeat(const Tensor & self, IntArrayRef repeats);
CAFFE2_API Tensor repeat_interleave_cpu(const Tensor & repeats);
CAFFE2_API Tensor repeat_interleave_cuda(const Tensor & repeats);
CAFFE2_API Tensor repeat_interleave(const Tensor & self, const Tensor & repeats, c10::optional<int64_t> dim=c10::nullopt);
CAFFE2_API Tensor repeat_interleave(const Tensor & self, int64_t repeats, c10::optional<int64_t> dim=c10::nullopt);
CAFFE2_API Tensor reshape(const Tensor & self, IntArrayRef shape);
CAFFE2_API Tensor mkldnn_reshape(const Tensor & self, IntArrayRef shape);
CAFFE2_API Tensor reshape_as(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor round(const Tensor & self);
CAFFE2_API Tensor & round_(Tensor & self);
CAFFE2_API Tensor & round_out(Tensor & out, const Tensor & self);
CAFFE2_API Tensor rrelu(const Tensor & self, Scalar lower=0.125, Scalar upper=0.333333333333, bool training=false, Generator * generator=nullptr);
CAFFE2_API Tensor & rrelu_(Tensor & self, Scalar lower=0.125, Scalar upper=0.333333333333, bool training=false, Generator * generator=nullptr);
CAFFE2_API Tensor relu(const Tensor & self);
CAFFE2_API Tensor mkldnn_relu(const Tensor & self);
CAFFE2_API Tensor quantized_relu(const Tensor & self);
CAFFE2_API Tensor & relu_(Tensor & self);
CAFFE2_API Tensor & mkldnn_relu_(Tensor & self);
CAFFE2_API Tensor & quantized_relu_(Tensor & self);
CAFFE2_API Tensor prelu_cpu(const Tensor & self, const Tensor & weight);
CAFFE2_API Tensor prelu_cuda(const Tensor & self, const Tensor & weight);
CAFFE2_API std::tuple<Tensor,Tensor> prelu_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & weight);
CAFFE2_API std::tuple<Tensor,Tensor> prelu_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & weight);
CAFFE2_API Tensor gelu_cpu(const Tensor & self);
CAFFE2_API Tensor gelu_cuda(const Tensor & self);
CAFFE2_API Tensor gelu_backward_cpu(const Tensor & grad, const Tensor & self);
CAFFE2_API Tensor gelu_backward_cuda(const Tensor & grad, const Tensor & self);
CAFFE2_API Tensor hardshrink_cpu(const Tensor & self, Scalar lambd=0.5);
CAFFE2_API Tensor hardshrink_cuda(const Tensor & self, Scalar lambd=0.5);
CAFFE2_API Tensor hardshrink_backward_cpu(const Tensor & grad_out, const Tensor & self, Scalar lambd);
CAFFE2_API Tensor hardshrink_backward_cuda(const Tensor & grad_out, const Tensor & self, Scalar lambd);
CAFFE2_API Tensor rsqrt(const Tensor & self);
CAFFE2_API Tensor & rsqrt_(Tensor & self);
CAFFE2_API Tensor & rsqrt_out(Tensor & out, const Tensor & self);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor select(const Tensor & self, Dimname dim, int64_t index);
#endif
CAFFE2_API Tensor select(const Tensor & self, int64_t dim, int64_t index);
CAFFE2_API Tensor selu(const Tensor & self);
CAFFE2_API Tensor & selu_(Tensor & self);
CAFFE2_API Tensor celu(const Tensor & self, Scalar alpha=1.0);
CAFFE2_API Tensor & celu_(Tensor & self, Scalar alpha=1.0);
CAFFE2_API Tensor sigmoid(const Tensor & self);
CAFFE2_API Tensor mkldnn_sigmoid(const Tensor & self);
CAFFE2_API Tensor & _sigmoid__cpu(Tensor & self);
CAFFE2_API Tensor & _sigmoid__cuda(Tensor & self);
CAFFE2_API Tensor & mkldnn_sigmoid_(Tensor & self);
CAFFE2_API Tensor & _sigmoid_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _sigmoid_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor sin(const Tensor & self);
CAFFE2_API Tensor & _sin__cpu(Tensor & self);
CAFFE2_API Tensor & _sin__cuda(Tensor & self);
CAFFE2_API Tensor & _sin_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _sin_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor sinh(const Tensor & self);
CAFFE2_API Tensor & _sinh__cpu(Tensor & self);
CAFFE2_API Tensor & _sinh__cuda(Tensor & self);
CAFFE2_API Tensor & _sinh_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _sinh_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor detach(const Tensor & self);
CAFFE2_API Tensor & detach_(Tensor & self);
CAFFE2_API int64_t size(const Tensor & self, int64_t dim);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API int64_t size(const Tensor & self, Dimname dim);
#endif
CAFFE2_API Tensor slice(const Tensor & self, int64_t dim=0, int64_t start=0, int64_t end=9223372036854775807, int64_t step=1);
CAFFE2_API std::tuple<Tensor,Tensor> slogdet(const Tensor & self);
CAFFE2_API Tensor smm(const Tensor & self, const Tensor & mat2);
CAFFE2_API Tensor softmax(const Tensor & self, int64_t dim, c10::optional<ScalarType> dtype=c10::nullopt);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor softmax(const Tensor & self, Dimname dim, c10::optional<ScalarType> dtype=c10::nullopt);
#endif
CAFFE2_API Tensor softmax_cpu(const Tensor & self, int64_t dim, bool half_to_float);
CAFFE2_API Tensor softmax_cuda(const Tensor & self, int64_t dim, bool half_to_float);
CAFFE2_API Tensor mkldnn_softmax(const Tensor & self, int64_t dim, bool half_to_float);
CAFFE2_API Tensor softmax_backward_cpu(const Tensor & grad_output, const Tensor & output, int64_t dim, const Tensor & self);
CAFFE2_API Tensor softmax_backward_cuda(const Tensor & grad_output, const Tensor & output, int64_t dim, const Tensor & self);
CAFFE2_API std::vector<Tensor> split(const Tensor & self, int64_t split_size, int64_t dim=0);
CAFFE2_API std::vector<Tensor> split_with_sizes(const Tensor & self, IntArrayRef split_sizes, int64_t dim=0);
CAFFE2_API Tensor squeeze(const Tensor & self);
CAFFE2_API Tensor squeeze(const Tensor & self, int64_t dim);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor squeeze(const Tensor & self, Dimname dim);
#endif
CAFFE2_API Tensor & squeeze_(Tensor & self);
CAFFE2_API Tensor & squeeze_(Tensor & self, int64_t dim);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & squeeze_(Tensor & self, Dimname dim);
#endif
CAFFE2_API Tensor sspaddmm(const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & _sspaddmm_out_only_sparse(Tensor & out, const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & _sspaddmm_out_only_sparse_cuda(Tensor & out, const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & _sspaddmm_out_cpu(Tensor & out, const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & _sspaddmm_out_cuda(Tensor & out, const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor stack(TensorList tensors, int64_t dim=0);
CAFFE2_API Tensor & stack_out(Tensor & out, TensorList tensors, int64_t dim=0);
CAFFE2_API Tensor stft(const Tensor & self, int64_t n_fft, c10::optional<int64_t> hop_length=c10::nullopt, c10::optional<int64_t> win_length=c10::nullopt, const Tensor & window={}, bool normalized=false, bool onesided=true);
CAFFE2_API int64_t stride(const Tensor & self, int64_t dim);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API int64_t stride(const Tensor & self, Dimname dim);
#endif
CAFFE2_API Tensor sum(const Tensor & self, c10::optional<ScalarType> dtype=c10::nullopt);
CAFFE2_API Tensor sum(const Tensor & self, IntArrayRef dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor sum(const Tensor & self, DimnameList dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
#endif
CAFFE2_API Tensor & sum_out(Tensor & out, const Tensor & self, IntArrayRef dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & sum_out(Tensor & out, const Tensor & self, DimnameList dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
#endif
CAFFE2_API Tensor sum_to_size(const Tensor & self, IntArrayRef size);
CAFFE2_API Tensor sqrt(const Tensor & self);
CAFFE2_API Tensor & _sqrt__cpu(Tensor & self);
CAFFE2_API Tensor & _sqrt__cuda(Tensor & self);
CAFFE2_API Tensor & _sqrt_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _sqrt_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor std(const Tensor & self, bool unbiased=true);
CAFFE2_API Tensor std(const Tensor & self, IntArrayRef dim, bool unbiased=true, bool keepdim=false);
CAFFE2_API std::tuple<Tensor,Tensor> std_mean(const Tensor & self, bool unbiased=true);
CAFFE2_API std::tuple<Tensor,Tensor> std_mean(const Tensor & self, IntArrayRef dim, bool unbiased=true, bool keepdim=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor,Tensor> std_mean(const Tensor & self, DimnameList dim, bool unbiased=true, bool keepdim=false);
#endif
CAFFE2_API Tensor & std_out(Tensor & out, const Tensor & self, IntArrayRef dim, bool unbiased=true, bool keepdim=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor std(const Tensor & self, DimnameList dim, bool unbiased=true, bool keepdim=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & std_out(Tensor & out, const Tensor & self, DimnameList dim, bool unbiased=true, bool keepdim=false);
#endif
CAFFE2_API Tensor prod(const Tensor & self, c10::optional<ScalarType> dtype=c10::nullopt);
CAFFE2_API Tensor prod(const Tensor & self, int64_t dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
CAFFE2_API Tensor & prod_out(Tensor & out, const Tensor & self, int64_t dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor prod(const Tensor & self, Dimname dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & prod_out(Tensor & out, const Tensor & self, Dimname dim, bool keepdim=false, c10::optional<ScalarType> dtype=c10::nullopt);
#endif
CAFFE2_API Tensor t(const Tensor & self);
CAFFE2_API Tensor & t_(Tensor & self);
CAFFE2_API Tensor tan(const Tensor & self);
CAFFE2_API Tensor & _tan__cpu(Tensor & self);
CAFFE2_API Tensor & _tan__cuda(Tensor & self);
CAFFE2_API Tensor & _tan_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _tan_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor tanh(const Tensor & self);
CAFFE2_API Tensor & _tanh__cpu(Tensor & self);
CAFFE2_API Tensor & _tanh__cuda(Tensor & self);
CAFFE2_API Tensor & _tanh_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _tanh_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor tensordot(const Tensor & self, const Tensor & other, IntArrayRef dims_self, IntArrayRef dims_other);
CAFFE2_API Tensor threshold(const Tensor & self, Scalar threshold, Scalar value);
CAFFE2_API Tensor & threshold_(Tensor & self, Scalar threshold, Scalar value);
CAFFE2_API Tensor & threshold_out(Tensor & out, const Tensor & self, Scalar threshold, Scalar value);
CAFFE2_API Tensor threshold_backward(const Tensor & grad_output, const Tensor & self, Scalar threshold);
CAFFE2_API Tensor transpose(const Tensor & self, int64_t dim0, int64_t dim1);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor transpose(const Tensor & self, Dimname dim0, Dimname dim1);
#endif
CAFFE2_API Tensor mkldnn_transpose(const Tensor & self, int64_t dim0, int64_t dim1);
CAFFE2_API Tensor & transpose_(Tensor & self, int64_t dim0, int64_t dim1);
CAFFE2_API Tensor & mkldnn_transpose_(Tensor & self, int64_t dim0, int64_t dim1);
CAFFE2_API Tensor one_hot(const Tensor & self, int64_t num_classes=-1);
CAFFE2_API Tensor flip_cpu(const Tensor & self, IntArrayRef dims);
CAFFE2_API Tensor flip_cuda(const Tensor & self, IntArrayRef dims);
CAFFE2_API Tensor roll_cpu(const Tensor & self, IntArrayRef shifts, IntArrayRef dims={});
CAFFE2_API Tensor roll_cuda(const Tensor & self, IntArrayRef shifts, IntArrayRef dims={});
CAFFE2_API Tensor rot90(const Tensor & self, int64_t k=1, IntArrayRef dims={0,1});
CAFFE2_API Tensor trapz(const Tensor & y, const Tensor & x, int64_t dim=-1);
CAFFE2_API Tensor trapz(const Tensor & y, double dx=1, int64_t dim=-1);
CAFFE2_API Tensor _trilinear(const Tensor & i1, const Tensor & i2, const Tensor & i3, IntArrayRef expand1, IntArrayRef expand2, IntArrayRef expand3, IntArrayRef sumdim, int64_t unroll_dim=1);
CAFFE2_API Tensor triplet_margin_loss(const Tensor & anchor, const Tensor & positive, const Tensor & negative, double margin=1.0, double p=2, double eps=1e-06, bool swap=false, int64_t reduction=Reduction::Mean);
CAFFE2_API Tensor trunc(const Tensor & self);
CAFFE2_API Tensor & trunc_(Tensor & self);
CAFFE2_API Tensor & trunc_out(Tensor & out, const Tensor & self);
CAFFE2_API Tensor type_as(const Tensor & self, const Tensor & other);
CAFFE2_API bool _has_compatible_shallow_copy_type(const Tensor & self, const Tensor & from);
CAFFE2_API std::tuple<Tensor,Tensor> _unique_cpu(const Tensor & self, bool sorted=true, bool return_inverse=false);
CAFFE2_API std::tuple<Tensor,Tensor> _unique_cuda(const Tensor & self, bool sorted=true, bool return_inverse=false);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> unique_dim_cpu(const Tensor & self, int64_t dim, bool sorted=true, bool return_inverse=false, bool return_counts=false);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> unique_dim_cuda(const Tensor & self, int64_t dim, bool sorted=true, bool return_inverse=false, bool return_counts=false);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> unique_consecutive_cpu(const Tensor & self, bool return_inverse=false, bool return_counts=false, c10::optional<int64_t> dim=c10::nullopt);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> unique_consecutive_cuda(const Tensor & self, bool return_inverse=false, bool return_counts=false, c10::optional<int64_t> dim=c10::nullopt);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> unique_dim_consecutive_cpu(const Tensor & self, int64_t dim, bool return_inverse=false, bool return_counts=false);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> unique_dim_consecutive_cuda(const Tensor & self, int64_t dim, bool return_inverse=false, bool return_counts=false);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> _unique2_cpu(const Tensor & self, bool sorted=true, bool return_inverse=false, bool return_counts=false);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> _unique2_cuda(const Tensor & self, bool sorted=true, bool return_inverse=false, bool return_counts=false);
CAFFE2_API Tensor _unsafe_view(const Tensor & self, IntArrayRef size);
CAFFE2_API Tensor unsqueeze(const Tensor & self, int64_t dim);
CAFFE2_API Tensor & unsqueeze_(Tensor & self, int64_t dim);
CAFFE2_API Tensor var(const Tensor & self, bool unbiased=true);
CAFFE2_API Tensor var(const Tensor & self, IntArrayRef dim, bool unbiased=true, bool keepdim=false);
CAFFE2_API Tensor & var_out(Tensor & out, const Tensor & self, IntArrayRef dim, bool unbiased=true, bool keepdim=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor var(const Tensor & self, DimnameList dim, bool unbiased=true, bool keepdim=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & var_out(Tensor & out, const Tensor & self, DimnameList dim, bool unbiased=true, bool keepdim=false);
#endif
CAFFE2_API std::tuple<Tensor,Tensor> var_mean(const Tensor & self, bool unbiased=true);
CAFFE2_API std::tuple<Tensor,Tensor> var_mean(const Tensor & self, IntArrayRef dim, bool unbiased=true, bool keepdim=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor,Tensor> var_mean(const Tensor & self, DimnameList dim, bool unbiased=true, bool keepdim=false);
#endif
CAFFE2_API Tensor view_as(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor where(const Tensor & condition, const Tensor & self, const Tensor & other);
CAFFE2_API std::vector<Tensor> where(const Tensor & condition);
CAFFE2_API Tensor _s_where_cpu(const Tensor & condition, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor _s_where_cuda(const Tensor & condition, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor norm_except_dim(const Tensor & v, int64_t pow=2, int64_t dim=0);
CAFFE2_API Tensor _weight_norm(const Tensor & v, const Tensor & g, int64_t dim=0);
CAFFE2_API std::tuple<Tensor,Tensor> weight_norm_cuda(const Tensor & v, const Tensor & g, int64_t dim=0);
CAFFE2_API std::tuple<Tensor,Tensor> weight_norm_cuda_backward(const Tensor & grad_w, const Tensor & saved_v, const Tensor & saved_g, const Tensor & saved_norms, int64_t dim);
CAFFE2_API std::tuple<Tensor,Tensor> _weight_norm_differentiable_backward(const Tensor & grad_w, const Tensor & saved_v, const Tensor & saved_g, const Tensor & saved_norms, int64_t dim);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor zeros(IntArrayRef size, c10::optional<DimnameList> names, const TensorOptions & options={});
#endif
CAFFE2_API Tensor zeros(IntArrayRef size, const TensorOptions & options={});
CAFFE2_API Tensor & zeros_out(Tensor & out, IntArrayRef size);
CAFFE2_API Tensor zeros_like(const Tensor & self);
CAFFE2_API Tensor zeros_like(const Tensor & self, const TensorOptions & options);
CAFFE2_API Tensor _standard_gamma_grad_cpu(const Tensor & self, const Tensor & output);
CAFFE2_API Tensor _standard_gamma_grad_cuda(const Tensor & self, const Tensor & output);
CAFFE2_API Tensor _s_gamma_cpu(const Tensor & self, Generator * generator=nullptr);
CAFFE2_API Tensor _s_gamma_cuda(const Tensor & self, Generator * generator=nullptr);
CAFFE2_API Tensor _dirichlet_grad_cpu(const Tensor & x, const Tensor & alpha, const Tensor & total);
CAFFE2_API Tensor _dirichlet_grad_cuda(const Tensor & x, const Tensor & alpha, const Tensor & total);
CAFFE2_API Tensor _s_dirichlet_cpu(const Tensor & self, Generator * generator=nullptr);
CAFFE2_API Tensor _s_dirichlet_cuda(const Tensor & self, Generator * generator=nullptr);
CAFFE2_API Tensor _s_poisson_cpu(const Tensor & self, Generator * generator=nullptr);
CAFFE2_API Tensor _s_poisson_cuda(const Tensor & self, Generator * generator=nullptr);
CAFFE2_API Tensor norm_sparse(const Tensor & self, Scalar p=2);
CAFFE2_API Tensor _sparse_sum(const Tensor & self);
CAFFE2_API Tensor _sparse_sum(const Tensor & self, ScalarType dtype);
CAFFE2_API Tensor _sparse_sum(const Tensor & self, IntArrayRef dim);
CAFFE2_API Tensor _sparse_sum(const Tensor & self, IntArrayRef dim, ScalarType dtype);
CAFFE2_API Tensor _sparse_sum_backward_cpu(const Tensor & grad, const Tensor & self, IntArrayRef dim);
CAFFE2_API Tensor _sparse_sum_backward_cuda(const Tensor & grad, const Tensor & self, IntArrayRef dim);
CAFFE2_API Tensor norm(const Tensor & self, c10::optional<Scalar> p, ScalarType dtype);
CAFFE2_API Tensor norm(const Tensor & self, Scalar p=2);
CAFFE2_API Tensor norm(const Tensor & self, c10::optional<Scalar> p, IntArrayRef dim, bool keepdim, ScalarType dtype);
CAFFE2_API Tensor norm(const Tensor & self, c10::optional<Scalar> p, IntArrayRef dim, bool keepdim=false);
CAFFE2_API Tensor & norm_out(Tensor & out, const Tensor & self, c10::optional<Scalar> p, IntArrayRef dim, bool keepdim, ScalarType dtype);
CAFFE2_API Tensor & norm_out(Tensor & out, const Tensor & self, c10::optional<Scalar> p, IntArrayRef dim, bool keepdim=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor norm(const Tensor & self, c10::optional<Scalar> p, DimnameList dim, bool keepdim, ScalarType dtype);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor norm(const Tensor & self, c10::optional<Scalar> p, DimnameList dim, bool keepdim=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & norm_out(Tensor & out, const Tensor & self, c10::optional<Scalar> p, DimnameList dim, bool keepdim, ScalarType dtype);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & norm_out(Tensor & out, const Tensor & self, c10::optional<Scalar> p, DimnameList dim, bool keepdim=false);
#endif
CAFFE2_API Tensor frobenius_norm(const Tensor & self);
CAFFE2_API Tensor frobenius_norm(const Tensor & self, IntArrayRef dim, bool keepdim=false);
CAFFE2_API Tensor & frobenius_norm_out(Tensor & out, const Tensor & self, IntArrayRef dim, bool keepdim=false);
CAFFE2_API Tensor nuclear_norm(const Tensor & self, bool keepdim=false);
CAFFE2_API Tensor & nuclear_norm_out(Tensor & out, const Tensor & self, bool keepdim=false);
CAFFE2_API Tensor nuclear_norm(const Tensor & self, IntArrayRef dim, bool keepdim=false);
CAFFE2_API Tensor & nuclear_norm_out(Tensor & out, const Tensor & self, IntArrayRef dim, bool keepdim=false);
CAFFE2_API Tensor clone(const Tensor & self);
CAFFE2_API Tensor mkldnn_clone(const Tensor & self);
CAFFE2_API Tensor quantized_clone(const Tensor & self);
CAFFE2_API Tensor clone_sparse(const Tensor & self);
CAFFE2_API Tensor & resize_as_(Tensor & self, const Tensor & the_template);
CAFFE2_API Tensor & pow_out(Tensor & out, const Tensor & self, Scalar exponent);
CAFFE2_API Tensor & pow_out_sparse_scalar(Tensor & out, const Tensor & self, Scalar exponent);
CAFFE2_API Tensor pow(const Tensor & self, Scalar exponent);
CAFFE2_API Tensor pow_sparse_scalar(const Tensor & self, Scalar exponent);
CAFFE2_API Tensor & mkldnn_zero_(Tensor & self);
CAFFE2_API Tensor & zero_sparse_(Tensor & self);
CAFFE2_API Tensor & sub_out(Tensor & out, const Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor & sub_out_sparse(Tensor & out, const Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor sub(const Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor sub_sparse(const Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor & sub_(Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor & sub_sparse_(Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor sub(const Tensor & self, Scalar other, Scalar alpha=1);
CAFFE2_API Tensor & sub_(Tensor & self, Scalar other, Scalar alpha=1);
CAFFE2_API Tensor rsub(const Tensor & self, const Tensor & other, Scalar alpha=1);
CAFFE2_API Tensor rsub(const Tensor & self, Scalar other, Scalar alpha=1);
CAFFE2_API Tensor _sparse_addmm(const Tensor & self, const Tensor & sparse, const Tensor & dense, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & addmm_out_sparse_dense_cpu(Tensor & out, const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & addmm_out_sparse_dense_cuda(Tensor & out, const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor addmm_sparse_dense_cpu(const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor addmm_sparse_dense_cuda(const Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & s_addmm_sparse_dense_cpu_(Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor & s_addmm_sparse_dense_cuda_(Tensor & self, const Tensor & mat1, const Tensor & mat2, Scalar beta=1, Scalar alpha=1);
CAFFE2_API Tensor sparse_coo_tensor(IntArrayRef size, const TensorOptions & options);
CAFFE2_API Tensor sparse_coo_tensor(const Tensor & indices, const Tensor & values, const TensorOptions & options={});
CAFFE2_API Tensor sparse_coo_tensor(const Tensor & indices, const Tensor & values, IntArrayRef size, const TensorOptions & options={});
CAFFE2_API Tensor _sparse_coo_tensor_unsafe(const Tensor & indices, const Tensor & values, IntArrayRef size, const TensorOptions & options={});
CAFFE2_API Tensor new_with_dims_sparse(int64_t sparse_dim, int64_t dense_dim, IntArrayRef size, const TensorOptions & options);
CAFFE2_API Tensor new_with_dims_and_tensor_sparse(int64_t sparse_dim, int64_t dense_dim, IntArrayRef size, const Tensor & indices, const Tensor & values, const TensorOptions & options);
CAFFE2_API Tensor & sparse_resize_(Tensor & self, IntArrayRef size, int64_t sparse_dim, int64_t dense_dim);
CAFFE2_API Tensor & sparse_resize_and_clear_(Tensor & self, IntArrayRef size, int64_t sparse_dim, int64_t dense_dim);
CAFFE2_API Tensor sparse_mask_cpu(const Tensor & self, const Tensor & mask);
CAFFE2_API Tensor sparse_mask_cuda(const Tensor & self, const Tensor & mask);
CAFFE2_API Tensor mkldnn_to_dense(const Tensor & self);
CAFFE2_API Tensor sparse_to_dense(const Tensor & self);
CAFFE2_API Tensor to_dense_backward(const Tensor & grad, const Tensor & input);
CAFFE2_API int64_t sparse_dim_sparse(const Tensor & self);
CAFFE2_API int64_t sparse_dim_sparse(const Tensor & self);
CAFFE2_API int64_t dense_dim_sparse(const Tensor & self);
CAFFE2_API int64_t dense_dim_sparse(const Tensor & self);
CAFFE2_API int64_t _nnz_sparse(const Tensor & self);
CAFFE2_API Tensor coalesce_sparse_cpu(const Tensor & self);
CAFFE2_API Tensor coalesce_sparse_cuda(const Tensor & self);
CAFFE2_API bool is_coalesced_sparse(const Tensor & self);
CAFFE2_API Tensor _indices_sparse(const Tensor & self);
CAFFE2_API Tensor _values_sparse(const Tensor & self);
CAFFE2_API Tensor & _coalesced_sparse_(Tensor & self, bool coalesced);
CAFFE2_API Tensor indices_sparse(const Tensor & self);
CAFFE2_API Tensor values_sparse(const Tensor & self);
CAFFE2_API Tensor & hspmm_out_sparse_cpu(Tensor & out, const Tensor & mat1, const Tensor & mat2);
CAFFE2_API Tensor & hspmm_out_sparse_cuda(Tensor & out, const Tensor & mat1, const Tensor & mat2);
CAFFE2_API Tensor hspmm_sparse_cpu(const Tensor & mat1, const Tensor & mat2);
CAFFE2_API Tensor hspmm_sparse_cuda(const Tensor & mat1, const Tensor & mat2);
CAFFE2_API Tensor & copy_sparse_(Tensor & self, const Tensor & src, bool non_blocking=false);
CAFFE2_API int64_t numel(const Tensor & self);
CAFFE2_API std::vector<Tensor> unbind(const Tensor & self, int64_t dim=0);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::vector<Tensor> unbind(const Tensor & self, Dimname dim);
#endif
CAFFE2_API Tensor dense_to_sparse(const Tensor & self, int64_t sparse_dim);
CAFFE2_API Tensor dense_to_sparse(const Tensor & self);
CAFFE2_API Tensor dense_to_mkldnn(const Tensor & self);
CAFFE2_API Tensor mkldnn_reorder_conv2d_weight(const Tensor & self, IntArrayRef padding=0, IntArrayRef stride=1, IntArrayRef dilation=1, int64_t groups=1);
CAFFE2_API Tensor to_mkldnn_backward(const Tensor & grad, const Tensor & input);
CAFFE2_API Tensor quantize_per_tensor_cpu(const Tensor & self, double scale, int64_t zero_point, ScalarType dtype);
CAFFE2_API Tensor quantize_per_channel_cpu(const Tensor & self, const Tensor & scales, const Tensor & zero_points, int64_t axis, ScalarType dtype);
CAFFE2_API Tensor dequantize_quant(const Tensor & self);
CAFFE2_API double q_scale_quant(const Tensor & self);
CAFFE2_API int64_t q_zero_point_quant(const Tensor & self);
CAFFE2_API Tensor q_per_channel_scales_quant(const Tensor & self);
CAFFE2_API Tensor q_per_channel_zero_points_quant(const Tensor & self);
CAFFE2_API int64_t q_per_channel_axis_quant(const Tensor & self);
CAFFE2_API Tensor int_repr_quant(const Tensor & self);
CAFFE2_API Tensor make_per_tensor_quantized_tensor_cpu(const Tensor & self, double scale, int64_t zero_point);
CAFFE2_API Tensor make_per_channel_quantized_tensor_cpu(const Tensor & self, const Tensor & scale, const Tensor & zero_point, int64_t axis);
CAFFE2_API QScheme qscheme_quant(const Tensor & self);
CAFFE2_API Tensor fake_quantize_per_tensor_affine_cpu(const Tensor & self, double scale, int64_t zero_point, int64_t quant_min, int64_t quant_max);
CAFFE2_API Tensor fake_quantize_per_tensor_affine_cuda(const Tensor & self, double scale, int64_t zero_point, int64_t quant_min, int64_t quant_max);
CAFFE2_API Tensor fake_quantize_per_tensor_affine_backward_cpu(const Tensor & grad, const Tensor & self, double scale, int64_t zero_point, int64_t quant_min, int64_t quant_max);
CAFFE2_API Tensor fake_quantize_per_tensor_affine_backward_cuda(const Tensor & grad, const Tensor & self, double scale, int64_t zero_point, int64_t quant_min, int64_t quant_max);
CAFFE2_API Tensor fake_quantize_per_channel_affine_cpu(const Tensor & self, const Tensor & scale, const Tensor & zero_point, int64_t axis, int64_t quant_min, int64_t quant_max);
CAFFE2_API Tensor fake_quantize_per_channel_affine_cuda(const Tensor & self, const Tensor & scale, const Tensor & zero_point, int64_t axis, int64_t quant_min, int64_t quant_max);
CAFFE2_API Tensor fake_quantize_per_channel_affine_backward_cpu(const Tensor & grad, const Tensor & self, const Tensor & scale, const Tensor & zero_point, int64_t axis, int64_t quant_min, int64_t quant_max);
CAFFE2_API Tensor fake_quantize_per_channel_affine_backward_cuda(const Tensor & grad, const Tensor & self, const Tensor & scale, const Tensor & zero_point, int64_t axis, int64_t quant_min, int64_t quant_max);
CAFFE2_API Tensor to(const Tensor & self, const TensorOptions & options, bool non_blocking=false, bool copy=false);
CAFFE2_API Tensor to(const Tensor & self, Device device, ScalarType dtype, bool non_blocking=false, bool copy=false);
CAFFE2_API Tensor to(const Tensor & self, ScalarType dtype, bool non_blocking=false, bool copy=false);
CAFFE2_API Tensor to(const Tensor & self, const Tensor & other, bool non_blocking=false, bool copy=false);
CAFFE2_API std::vector<Tensor> meshgrid(TensorList tensors);
CAFFE2_API Tensor cartesian_prod(TensorList tensors);
CAFFE2_API Tensor combinations(const Tensor & self, int64_t r=2, bool with_replacement=false);
CAFFE2_API Scalar item(const Tensor & self);
CAFFE2_API ScalarType result_type(const Tensor & tensor, const Tensor & other);
CAFFE2_API ScalarType result_type(const Tensor & tensor, Scalar other);
CAFFE2_API ScalarType result_type(Scalar scalar, const Tensor & tensor);
CAFFE2_API ScalarType result_type(Scalar scalar1, Scalar scalar2);
CAFFE2_API bool can_cast(ScalarType from, ScalarType to);
CAFFE2_API ScalarType promote_types(ScalarType type1, ScalarType type2);
CAFFE2_API Scalar _local_scalar_dense_cpu(const Tensor & self);
CAFFE2_API Scalar _local_scalar_dense_cuda(const Tensor & self);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> _thnn_fused_lstm_cell_cuda(const Tensor & input_gates, const Tensor & hidden_gates, const Tensor & cx, const Tensor & input_bias={}, const Tensor & hidden_bias={});
CAFFE2_API std::tuple<Tensor,Tensor,Tensor,Tensor,Tensor> _thnn_fused_lstm_cell_backward_cuda(const Tensor & grad_hy, const Tensor & grad_cy, const Tensor & cx, const Tensor & cy, const Tensor & workspace, bool has_bias);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor,Tensor,Tensor> _thnn_differentiable_lstm_cell_backward(const Tensor & grad_hy, const Tensor & grad_cy, const Tensor & input_gates, const Tensor & hidden_gates, const Tensor & input_bias, const Tensor & hidden_bias, const Tensor & cx, const Tensor & cy);
CAFFE2_API std::tuple<Tensor,Tensor> _thnn_fused_gru_cell_cuda(const Tensor & input_gates, const Tensor & hidden_gates, const Tensor & hx, const Tensor & input_bias={}, const Tensor & hidden_bias={});
CAFFE2_API std::tuple<Tensor,Tensor,Tensor,Tensor,Tensor> _thnn_fused_gru_cell_backward_cuda(const Tensor & grad_hy, const Tensor & workspace, bool has_bias);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor,Tensor,Tensor> _thnn_differentiable_gru_cell_backward(const Tensor & grad_hy, const Tensor & input_gates, const Tensor & hidden_gates, const Tensor & hx, const Tensor & input_bias, const Tensor & hidden_bias);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> lstm(const Tensor & input, TensorList hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional, bool batch_first);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> lstm(const Tensor & data, const Tensor & batch_sizes, TensorList hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional);
CAFFE2_API std::tuple<Tensor,Tensor> gru(const Tensor & input, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional, bool batch_first);
CAFFE2_API std::tuple<Tensor,Tensor> gru(const Tensor & data, const Tensor & batch_sizes, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional);
CAFFE2_API std::tuple<Tensor,Tensor> rnn_tanh(const Tensor & input, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional, bool batch_first);
CAFFE2_API std::tuple<Tensor,Tensor> rnn_tanh(const Tensor & data, const Tensor & batch_sizes, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional);
CAFFE2_API std::tuple<Tensor,Tensor> rnn_relu(const Tensor & input, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional, bool batch_first);
CAFFE2_API std::tuple<Tensor,Tensor> rnn_relu(const Tensor & data, const Tensor & batch_sizes, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional);
CAFFE2_API std::tuple<Tensor,Tensor> lstm_cell(const Tensor & input, TensorList hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih={}, const Tensor & b_hh={});
CAFFE2_API Tensor gru_cell(const Tensor & input, const Tensor & hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih={}, const Tensor & b_hh={});
CAFFE2_API Tensor rnn_tanh_cell(const Tensor & input, const Tensor & hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih={}, const Tensor & b_hh={});
CAFFE2_API Tensor rnn_relu_cell(const Tensor & input, const Tensor & hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih={}, const Tensor & b_hh={});
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> quantized_lstm(const Tensor & input, TensorList hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional, bool batch_first, c10::optional<ScalarType> dtype=c10::nullopt, bool use_dynamic=false);
CAFFE2_API std::tuple<Tensor,Tensor> quantized_gru(const Tensor & input, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional, bool batch_first);
CAFFE2_API std::tuple<Tensor,Tensor> quantized_gru(const Tensor & data, const Tensor & batch_sizes, const Tensor & hx, TensorList params, bool has_biases, int64_t num_layers, double dropout, bool train, bool bidirectional);
CAFFE2_API std::tuple<Tensor,Tensor> quantized_lstm_cell(const Tensor & input, TensorList hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih, const Tensor & b_hh, const Tensor & packed_ih, const Tensor & packed_hh, const Tensor & col_offsets_ih, const Tensor & col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh);
CAFFE2_API Tensor quantized_gru_cell(const Tensor & input, const Tensor & hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih, const Tensor & b_hh, const Tensor & packed_ih, const Tensor & packed_hh, const Tensor & col_offsets_ih, const Tensor & col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh);
CAFFE2_API Tensor quantized_rnn_relu_cell(const Tensor & input, const Tensor & hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih, const Tensor & b_hh, const Tensor & packed_ih, const Tensor & packed_hh, const Tensor & col_offsets_ih, const Tensor & col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh);
CAFFE2_API Tensor quantized_rnn_tanh_cell(const Tensor & input, const Tensor & hx, const Tensor & w_ih, const Tensor & w_hh, const Tensor & b_ih, const Tensor & b_hh, const Tensor & packed_ih, const Tensor & packed_hh, const Tensor & col_offsets_ih, const Tensor & col_offsets_hh, Scalar scale_ih, Scalar scale_hh, Scalar zero_point_ih, Scalar zero_point_hh);
CAFFE2_API std::tuple<Tensor,Tensor> _pack_padded_sequence(const Tensor & input, const Tensor & lengths, bool batch_first);
CAFFE2_API Tensor _pack_padded_sequence_backward(const Tensor & grad, IntArrayRef input_size, const Tensor & batch_sizes, bool batch_first);
CAFFE2_API std::tuple<Tensor,Tensor> _pad_packed_sequence(const Tensor & data, const Tensor & batch_sizes, bool batch_first, Scalar padding_value, int64_t total_length);
CAFFE2_API Tensor & set_storage(Tensor & self, Storage source, int64_t storage_offset, IntArrayRef size, IntArrayRef stride={});
CAFFE2_API Tensor & set_quantizer_(Tensor & self, ConstQuantizerPtr quantizer);
CAFFE2_API Tensor & masked_fill__cpu(Tensor & self, const Tensor & mask, Scalar value);
CAFFE2_API Tensor & masked_fill__cuda(Tensor & self, const Tensor & mask, Scalar value);
CAFFE2_API Tensor masked_fill(const Tensor & self, const Tensor & mask, Scalar value);
CAFFE2_API Tensor & masked_fill__cpu(Tensor & self, const Tensor & mask, const Tensor & value);
CAFFE2_API Tensor & masked_fill__cuda(Tensor & self, const Tensor & mask, const Tensor & value);
CAFFE2_API Tensor masked_fill(const Tensor & self, const Tensor & mask, const Tensor & value);
CAFFE2_API Tensor & masked_scatter__cpu(Tensor & self, const Tensor & mask, const Tensor & source);
CAFFE2_API Tensor & masked_scatter__cuda(Tensor & self, const Tensor & mask, const Tensor & source);
CAFFE2_API Tensor masked_scatter(const Tensor & self, const Tensor & mask, const Tensor & source);
CAFFE2_API Tensor view(const Tensor & self, IntArrayRef size);
CAFFE2_API Tensor mkldnn_view(const Tensor & self, IntArrayRef size);
CAFFE2_API Tensor index_add(const Tensor & self, int64_t dim, const Tensor & index, const Tensor & source);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor index_add(const Tensor & self, Dimname dim, const Tensor & index, const Tensor & source);
#endif
CAFFE2_API Tensor index_fill(const Tensor & self, int64_t dim, const Tensor & index, Scalar value);
CAFFE2_API Tensor index_fill(const Tensor & self, int64_t dim, const Tensor & index, const Tensor & value);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & index_fill_(Tensor & self, Dimname dim, const Tensor & index, Scalar value);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & index_fill_(Tensor & self, Dimname dim, const Tensor & index, const Tensor & value);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor index_fill(const Tensor & self, Dimname dim, const Tensor & index, Scalar value);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor index_fill(const Tensor & self, Dimname dim, const Tensor & index, const Tensor & value);
#endif
CAFFE2_API Tensor scatter(const Tensor & self, int64_t dim, const Tensor & index, const Tensor & src);
CAFFE2_API Tensor scatter(const Tensor & self, int64_t dim, const Tensor & index, Scalar value);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor scatter(const Tensor & self, Dimname dim, const Tensor & index, const Tensor & src);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor scatter(const Tensor & self, Dimname dim, const Tensor & index, Scalar value);
#endif
CAFFE2_API Tensor scatter_add(const Tensor & self, int64_t dim, const Tensor & index, const Tensor & src);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor scatter_add(const Tensor & self, Dimname dim, const Tensor & index, const Tensor & src);
#endif
CAFFE2_API Tensor & lt_(Tensor & self, Scalar other);
CAFFE2_API Tensor & lt_(Tensor & self, const Tensor & other);
CAFFE2_API Tensor & gt_(Tensor & self, Scalar other);
CAFFE2_API Tensor & gt_(Tensor & self, const Tensor & other);
CAFFE2_API Tensor & le_(Tensor & self, Scalar other);
CAFFE2_API Tensor & le_(Tensor & self, const Tensor & other);
CAFFE2_API Tensor & ge_(Tensor & self, Scalar other);
CAFFE2_API Tensor & ge_(Tensor & self, const Tensor & other);
CAFFE2_API Tensor & eq_(Tensor & self, Scalar other);
CAFFE2_API Tensor & eq_(Tensor & self, const Tensor & other);
CAFFE2_API Tensor & ne_(Tensor & self, Scalar other);
CAFFE2_API Tensor & ne_(Tensor & self, const Tensor & other);
CAFFE2_API Tensor & _lgamma__cpu(Tensor & self);
CAFFE2_API Tensor & _lgamma__cuda(Tensor & self);
CAFFE2_API Tensor & atan2_(Tensor & self, const Tensor & other);
CAFFE2_API Tensor & tril_cpu_(Tensor & self, int64_t diagonal=0);
CAFFE2_API Tensor & tril_cuda_(Tensor & self, int64_t diagonal=0);
CAFFE2_API Tensor & triu_cpu_(Tensor & self, int64_t diagonal=0);
CAFFE2_API Tensor & triu_cuda_(Tensor & self, int64_t diagonal=0);
CAFFE2_API Tensor & digamma_(Tensor & self);
CAFFE2_API Tensor & polygamma_(Tensor & self, int64_t n);
CAFFE2_API Tensor & pow_(Tensor & self, Scalar exponent);
CAFFE2_API Tensor & pow_(Tensor & self, const Tensor & exponent);
CAFFE2_API Tensor & lerp_cpu_scalar_(Tensor & self, const Tensor & end, Scalar weight);
CAFFE2_API Tensor & lerp_cuda_scalar_(Tensor & self, const Tensor & end, Scalar weight);
CAFFE2_API Tensor & lerp_cpu_tensor_(Tensor & self, const Tensor & end, const Tensor & weight);
CAFFE2_API Tensor & lerp_cuda_tensor_(Tensor & self, const Tensor & end, const Tensor & weight);
CAFFE2_API Tensor & addcdiv_(Tensor & self, const Tensor & tensor1, const Tensor & tensor2, Scalar value=1);
CAFFE2_API Tensor & clamped_random_cuda_(Tensor & self, int64_t from, int64_t to, Generator * generator=nullptr);
CAFFE2_API Tensor & capped_random_cuda_(Tensor & self, int64_t to, Generator * generator=nullptr);
CAFFE2_API Tensor & random_cuda_(Tensor & self, Generator * generator=nullptr);
CAFFE2_API Tensor & uniform_cuda_(Tensor & self, double from=0, double to=1, Generator * generator=nullptr);
CAFFE2_API Tensor & normal_cuda_(Tensor & self, double mean=0, double std=1, Generator * generator=nullptr);
CAFFE2_API Tensor & cauchy_cuda_(Tensor & self, double median=0, double sigma=1, Generator * generator=nullptr);
CAFFE2_API Tensor & log_normal_cuda_(Tensor & self, double mean=1, double std=2, Generator * generator=nullptr);
CAFFE2_API Tensor & exponential_cuda_(Tensor & self, double lambd=1, Generator * generator=nullptr);
CAFFE2_API Tensor & geometric_cuda_(Tensor & self, double p, Generator * generator=nullptr);
CAFFE2_API Tensor & cross_out(Tensor & out, const Tensor & self, const Tensor & other, c10::optional<int64_t> dim=c10::nullopt);
CAFFE2_API Tensor cross(const Tensor & self, const Tensor & other, c10::optional<int64_t> dim=c10::nullopt);
CAFFE2_API Tensor & triu_cpu_out(Tensor & out, const Tensor & self, int64_t diagonal=0);
CAFFE2_API Tensor & triu_cuda_out(Tensor & out, const Tensor & self, int64_t diagonal=0);
CAFFE2_API Tensor triu(const Tensor & self, int64_t diagonal=0);
CAFFE2_API Tensor & tril_cpu_out(Tensor & out, const Tensor & self, int64_t diagonal=0);
CAFFE2_API Tensor & tril_cuda_out(Tensor & out, const Tensor & self, int64_t diagonal=0);
CAFFE2_API Tensor tril(const Tensor & self, int64_t diagonal=0);
CAFFE2_API Tensor tril_indices_cpu(int64_t row, int64_t col, int64_t offset=0, const TensorOptions & options=at::kLong);
CAFFE2_API Tensor tril_indices_cuda(int64_t row, int64_t col, int64_t offset=0, const TensorOptions & options=at::kLong);
CAFFE2_API Tensor triu_indices_cpu(int64_t row, int64_t col, int64_t offset=0, const TensorOptions & options=at::kLong);
CAFFE2_API Tensor triu_indices_cuda(int64_t row, int64_t col, int64_t offset=0, const TensorOptions & options=at::kLong);
CAFFE2_API Tensor & ne_out(Tensor & out, const Tensor & self, Scalar other);
CAFFE2_API Tensor & ne_out_quantized_cpu(Tensor & out, const Tensor & self, Scalar other);
CAFFE2_API Tensor ne(const Tensor & self, Scalar other);
CAFFE2_API Tensor ne_quantized_cpu(const Tensor & self, Scalar other);
CAFFE2_API Tensor & ne_out(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & ne_out_quantized_cpu(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor ne(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor ne_quantized_cpu(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & eq_out(Tensor & out, const Tensor & self, Scalar other);
CAFFE2_API Tensor & eq_out_quantized_cpu(Tensor & out, const Tensor & self, Scalar other);
CAFFE2_API Tensor eq(const Tensor & self, Scalar other);
CAFFE2_API Tensor eq_quantized_cpu(const Tensor & self, Scalar other);
CAFFE2_API Tensor & eq_out(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & eq_out_quantized_cpu(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor eq(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor eq_quantized_cpu(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & ge_out(Tensor & out, const Tensor & self, Scalar other);
CAFFE2_API Tensor & ge_out_quantized_cpu(Tensor & out, const Tensor & self, Scalar other);
CAFFE2_API Tensor ge(const Tensor & self, Scalar other);
CAFFE2_API Tensor ge_quantized_cpu(const Tensor & self, Scalar other);
CAFFE2_API Tensor & ge_out(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & ge_out_quantized_cpu(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor ge(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor ge_quantized_cpu(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & le_out(Tensor & out, const Tensor & self, Scalar other);
CAFFE2_API Tensor & le_out_quantized_cpu(Tensor & out, const Tensor & self, Scalar other);
CAFFE2_API Tensor le(const Tensor & self, Scalar other);
CAFFE2_API Tensor le_quantized_cpu(const Tensor & self, Scalar other);
CAFFE2_API Tensor & le_out(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & le_out_quantized_cpu(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor le(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor le_quantized_cpu(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & gt_out(Tensor & out, const Tensor & self, Scalar other);
CAFFE2_API Tensor & gt_out_quantized_cpu(Tensor & out, const Tensor & self, Scalar other);
CAFFE2_API Tensor gt(const Tensor & self, Scalar other);
CAFFE2_API Tensor gt_quantized_cpu(const Tensor & self, Scalar other);
CAFFE2_API Tensor & gt_out(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & gt_out_quantized_cpu(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor gt(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor gt_quantized_cpu(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & lt_out(Tensor & out, const Tensor & self, Scalar other);
CAFFE2_API Tensor & lt_out_quantized_cpu(Tensor & out, const Tensor & self, Scalar other);
CAFFE2_API Tensor lt(const Tensor & self, Scalar other);
CAFFE2_API Tensor lt_quantized_cpu(const Tensor & self, Scalar other);
CAFFE2_API Tensor & lt_out(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & lt_out_quantized_cpu(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor lt(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor lt_quantized_cpu(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor index_select_sparse(const Tensor & self, int64_t dim, const Tensor & index);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & index_select_out(Tensor & out, const Tensor & self, Dimname dim, const Tensor & index);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor index_select(const Tensor & self, Dimname dim, const Tensor & index);
#endif
CAFFE2_API Tensor & masked_select_out_cpu(Tensor & out, const Tensor & self, const Tensor & mask);
CAFFE2_API Tensor & masked_select_out_cuda(Tensor & out, const Tensor & self, const Tensor & mask);
CAFFE2_API Tensor masked_select_cpu(const Tensor & self, const Tensor & mask);
CAFFE2_API Tensor masked_select_cuda(const Tensor & self, const Tensor & mask);
CAFFE2_API std::vector<Tensor> nonzero_numpy(const Tensor & self);
CAFFE2_API Tensor & gather_out_cpu(Tensor & out, const Tensor & self, int64_t dim, const Tensor & index, bool sparse_grad=false);
CAFFE2_API Tensor & gather_out_cuda(Tensor & out, const Tensor & self, int64_t dim, const Tensor & index, bool sparse_grad=false);
CAFFE2_API Tensor gather_cpu(const Tensor & self, int64_t dim, const Tensor & index, bool sparse_grad=false);
CAFFE2_API Tensor gather_cuda(const Tensor & self, int64_t dim, const Tensor & index, bool sparse_grad=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor & gather_out(Tensor & out, const Tensor & self, Dimname dim, const Tensor & index, bool sparse_grad=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor gather(const Tensor & self, Dimname dim, const Tensor & index, bool sparse_grad=false);
#endif
CAFFE2_API Tensor _gather_sparse_backward(const Tensor & self, int64_t dim, const Tensor & index, const Tensor & grad);
CAFFE2_API Tensor & addcmul_out(Tensor & out, const Tensor & self, const Tensor & tensor1, const Tensor & tensor2, Scalar value=1);
CAFFE2_API Tensor addcmul(const Tensor & self, const Tensor & tensor1, const Tensor & tensor2, Scalar value=1);
CAFFE2_API Tensor & addcmul_(Tensor & self, const Tensor & tensor1, const Tensor & tensor2, Scalar value=1);
CAFFE2_API Tensor & addcdiv_out(Tensor & out, const Tensor & self, const Tensor & tensor1, const Tensor & tensor2, Scalar value=1);
CAFFE2_API Tensor addcdiv(const Tensor & self, const Tensor & tensor1, const Tensor & tensor2, Scalar value=1);
CAFFE2_API std::tuple<Tensor &,Tensor &> triangular_solve_out(Tensor & X, Tensor & M, const Tensor & self, const Tensor & A, bool upper=true, bool transpose=false, bool unitriangular=false);
CAFFE2_API std::tuple<Tensor,Tensor> triangular_solve(const Tensor & self, const Tensor & A, bool upper=true, bool transpose=false, bool unitriangular=false);
CAFFE2_API std::tuple<Tensor,Tensor> _triangular_solve_helper_cpu(const Tensor & self, const Tensor & A, bool upper, bool transpose, bool unitriangular);
CAFFE2_API std::tuple<Tensor,Tensor> _triangular_solve_helper_cuda(const Tensor & self, const Tensor & A, bool upper, bool transpose, bool unitriangular);
CAFFE2_API std::tuple<Tensor &,Tensor &> symeig_out(Tensor & e, Tensor & V, const Tensor & self, bool eigenvectors=false, bool upper=true);
CAFFE2_API std::tuple<Tensor,Tensor> symeig(const Tensor & self, bool eigenvectors=false, bool upper=true);
CAFFE2_API std::tuple<Tensor,Tensor> _symeig_helper_cpu(const Tensor & self, bool eigenvectors, bool upper);
CAFFE2_API std::tuple<Tensor,Tensor> _symeig_helper_cuda(const Tensor & self, bool eigenvectors, bool upper);
CAFFE2_API std::tuple<Tensor &,Tensor &,Tensor &> svd_out(Tensor & U, Tensor & S, Tensor & V, const Tensor & self, bool some=true, bool compute_uv=true);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> svd(const Tensor & self, bool some=true, bool compute_uv=true);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> _svd_helper_cpu(const Tensor & self, bool some, bool compute_uv);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> _svd_helper_cuda(const Tensor & self, bool some, bool compute_uv);
CAFFE2_API Tensor & cholesky_out(Tensor & out, const Tensor & self, bool upper=false);
CAFFE2_API Tensor cholesky(const Tensor & self, bool upper=false);
CAFFE2_API Tensor _cholesky_helper_cpu(const Tensor & self, bool upper);
CAFFE2_API Tensor _cholesky_helper_cuda(const Tensor & self, bool upper);
CAFFE2_API Tensor & cholesky_solve_out(Tensor & out, const Tensor & self, const Tensor & input2, bool upper=false);
CAFFE2_API Tensor cholesky_solve(const Tensor & self, const Tensor & input2, bool upper=false);
CAFFE2_API Tensor _cholesky_solve_helper_cpu(const Tensor & self, const Tensor & A, bool upper);
CAFFE2_API Tensor _cholesky_solve_helper_cuda(const Tensor & self, const Tensor & A, bool upper);
CAFFE2_API std::tuple<Tensor,Tensor> solve(const Tensor & self, const Tensor & A);
CAFFE2_API std::tuple<Tensor &,Tensor &> solve_out(Tensor & solution, Tensor & lu, const Tensor & self, const Tensor & A);
CAFFE2_API std::tuple<Tensor,Tensor> _solve_helper_cpu(const Tensor & self, const Tensor & A);
CAFFE2_API std::tuple<Tensor,Tensor> _solve_helper_cuda(const Tensor & self, const Tensor & A);
CAFFE2_API std::tuple<Tensor &,Tensor &> qr_out(Tensor & Q, Tensor & R, const Tensor & self, bool some=true);
CAFFE2_API std::tuple<Tensor,Tensor> qr(const Tensor & self, bool some=true);
CAFFE2_API std::tuple<Tensor,Tensor> _qr_helper_cpu(const Tensor & self, bool some);
CAFFE2_API std::tuple<Tensor,Tensor> _qr_helper_cuda(const Tensor & self, bool some);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> _lu_with_info_cpu(const Tensor & self, bool pivot=true, bool check_errors=true);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> _lu_with_info_cuda(const Tensor & self, bool pivot=true, bool check_errors=true);
CAFFE2_API Tensor & lu_solve_out(Tensor & out, const Tensor & self, const Tensor & LU_data, const Tensor & LU_pivots);
CAFFE2_API Tensor lu_solve(const Tensor & self, const Tensor & LU_data, const Tensor & LU_pivots);
CAFFE2_API Tensor _lu_solve_helper_cpu(const Tensor & self, const Tensor & LU_data, const Tensor & LU_pivots);
CAFFE2_API Tensor _lu_solve_helper_cuda(const Tensor & self, const Tensor & LU_data, const Tensor & LU_pivots);
CAFFE2_API Tensor & multinomial_out(Tensor & out, const Tensor & self, int64_t num_samples, bool replacement=false, Generator * generator=nullptr);
CAFFE2_API Tensor multinomial(const Tensor & self, int64_t num_samples, bool replacement=false, Generator * generator=nullptr);
CAFFE2_API Tensor & _lgamma_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _lgamma_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor lgamma(const Tensor & self);
CAFFE2_API Tensor & digamma_out(Tensor & out, const Tensor & self);
CAFFE2_API Tensor digamma(const Tensor & self);
CAFFE2_API Tensor & polygamma_out(Tensor & out, int64_t n, const Tensor & self);
CAFFE2_API Tensor polygamma(int64_t n, const Tensor & self);
CAFFE2_API Tensor erfinv(const Tensor & self);
CAFFE2_API Tensor & _erfinv__cpu(Tensor & self);
CAFFE2_API Tensor & _erfinv__cuda(Tensor & self);
CAFFE2_API Tensor & _erfinv_out_cpu(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & _erfinv_out_cuda(Tensor & out, const Tensor & self);
CAFFE2_API Tensor sign(const Tensor & self);
CAFFE2_API Tensor & sign_(Tensor & self);
CAFFE2_API Tensor & sign_out(Tensor & out, const Tensor & self);
CAFFE2_API Tensor & atan2_out(Tensor & out, const Tensor & self, const Tensor & other);
CAFFE2_API Tensor atan2(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & lerp_cpu_scalar_out(Tensor & out, const Tensor & self, const Tensor & end, Scalar weight);
CAFFE2_API Tensor & lerp_cuda_scalar_out(Tensor & out, const Tensor & self, const Tensor & end, Scalar weight);
CAFFE2_API Tensor & lerp_cpu_tensor_out(Tensor & out, const Tensor & self, const Tensor & end, const Tensor & weight);
CAFFE2_API Tensor & lerp_cuda_tensor_out(Tensor & out, const Tensor & self, const Tensor & end, const Tensor & weight);
CAFFE2_API Tensor lerp_cpu_scalar(const Tensor & self, const Tensor & end, Scalar weight);
CAFFE2_API Tensor lerp_cuda_scalar(const Tensor & self, const Tensor & end, Scalar weight);
CAFFE2_API Tensor lerp_cpu_tensor(const Tensor & self, const Tensor & end, const Tensor & weight);
CAFFE2_API Tensor lerp_cuda_tensor(const Tensor & self, const Tensor & end, const Tensor & weight);
CAFFE2_API Tensor & _histc_out_cuda(Tensor & out, const Tensor & self, int64_t bins=100, Scalar min=0, Scalar max=0);
CAFFE2_API Tensor _histc_cuda(const Tensor & self, int64_t bins=100, Scalar min=0, Scalar max=0);
CAFFE2_API Tensor min_quant(const Tensor & self);
CAFFE2_API Tensor max_quant(const Tensor & self);
CAFFE2_API Tensor median_cpu(const Tensor & self);
CAFFE2_API Tensor median_cuda(const Tensor & self);
CAFFE2_API std::tuple<Tensor,Tensor> sort_quant(const Tensor & self, int64_t dim=-1, bool descending=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor &,Tensor &> sort_out(Tensor & values, Tensor & indices, const Tensor & self, Dimname dim, bool descending=false);
#endif
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API std::tuple<Tensor,Tensor> sort(const Tensor & self, Dimname dim, bool descending=false);
#endif
CAFFE2_API Tensor argsort(const Tensor & self, int64_t dim=-1, bool descending=false);
#ifdef BUILD_NAMEDTENSOR
CAFFE2_API Tensor argsort(const Tensor & self, Dimname dim, bool descending=false);
#endif
CAFFE2_API std::tuple<Tensor &,Tensor &> topk_out_cpu(Tensor & values, Tensor & indices, const Tensor & self, int64_t k, int64_t dim=-1, bool largest=true, bool sorted=true);
CAFFE2_API std::tuple<Tensor,Tensor> topk(const Tensor & self, int64_t k, int64_t dim=-1, bool largest=true, bool sorted=true);
CAFFE2_API std::tuple<Tensor,Tensor> quantized_topk_cpu(const Tensor & self, int64_t k, int64_t dim=-1, bool largest=true, bool sorted=true);
CAFFE2_API Tensor all(const Tensor & self);
CAFFE2_API Tensor any(const Tensor & self);
CAFFE2_API bool quantized_equal(const Tensor & self, const Tensor & other);
CAFFE2_API Tensor & pow_out(Tensor & out, const Tensor & self, const Tensor & exponent);
CAFFE2_API Tensor pow(const Tensor & self, const Tensor & exponent);
CAFFE2_API Tensor & pow_out(Tensor & out, Scalar self, const Tensor & exponent);
CAFFE2_API Tensor pow(Scalar self, const Tensor & exponent);
CAFFE2_API Tensor & normal_out_cuda(Tensor & out, const Tensor & mean, double std=1, Generator * generator=nullptr);
CAFFE2_API Tensor normal_cuda(const Tensor & mean, double std=1, Generator * generator=nullptr);
CAFFE2_API Tensor & normal_out_cuda(Tensor & out, double mean, const Tensor & std, Generator * generator=nullptr);
CAFFE2_API Tensor normal_cuda(double mean, const Tensor & std, Generator * generator=nullptr);
CAFFE2_API Tensor & normal_out_cuda(Tensor & out, const Tensor & mean, const Tensor & std, Generator * generator=nullptr);
CAFFE2_API Tensor normal_cuda(const Tensor & mean, const Tensor & std, Generator * generator=nullptr);
CAFFE2_API Tensor normal(double mean, double std, IntArrayRef size, Generator * generator=nullptr, const TensorOptions & options={});
CAFFE2_API Tensor & normal_out(Tensor & out, double mean, double std, IntArrayRef size, Generator * generator=nullptr);
CAFFE2_API Tensor alias(const Tensor & self);
CAFFE2_API Tensor & multilabel_margin_loss_out(Tensor & out, const Tensor & self, const Tensor & target, int64_t reduction=Reduction::Mean);
CAFFE2_API Tensor multilabel_margin_loss(const Tensor & self, const Tensor & target, int64_t reduction=Reduction::Mean);
CAFFE2_API Tensor & nll_loss_out(Tensor & out, const Tensor & self, const Tensor & target, const Tensor & weight={}, int64_t reduction=Reduction::Mean, int64_t ignore_index=-100);
CAFFE2_API Tensor nll_loss(const Tensor & self, const Tensor & target, const Tensor & weight={}, int64_t reduction=Reduction::Mean, int64_t ignore_index=-100);
CAFFE2_API Tensor & nll_loss2d_out(Tensor & out, const Tensor & self, const Tensor & target, const Tensor & weight={}, int64_t reduction=Reduction::Mean, int64_t ignore_index=-100);
CAFFE2_API Tensor nll_loss2d(const Tensor & self, const Tensor & target, const Tensor & weight={}, int64_t reduction=Reduction::Mean, int64_t ignore_index=-100);
CAFFE2_API Tensor & log_sigmoid_out(Tensor & out, const Tensor & self);
CAFFE2_API Tensor log_sigmoid(const Tensor & self);
CAFFE2_API Tensor & adaptive_avg_pool2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor & adaptive_avg_pool2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor & mkldnn_adaptive_avg_pool2d_out(Tensor & out, const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor adaptive_avg_pool2d(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor mkldnn_adaptive_avg_pool2d(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor adaptive_avg_pool2d_cpu(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor adaptive_avg_pool2d_cuda(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor quantized_adaptive_avg_pool2d(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor adaptive_avg_pool2d_backward_cpu(const Tensor & grad_output, const Tensor & self);
CAFFE2_API Tensor adaptive_avg_pool2d_backward_cuda(const Tensor & grad_output, const Tensor & self);
CAFFE2_API Tensor & adaptive_avg_pool3d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor & adaptive_avg_pool3d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor adaptive_avg_pool3d_cpu(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor adaptive_avg_pool3d_cuda(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor & adaptive_avg_pool3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self);
CAFFE2_API Tensor & adaptive_avg_pool3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self);
CAFFE2_API Tensor adaptive_avg_pool3d_backward_cpu(const Tensor & grad_output, const Tensor & self);
CAFFE2_API Tensor adaptive_avg_pool3d_backward_cuda(const Tensor & grad_output, const Tensor & self);
CAFFE2_API std::tuple<Tensor &,Tensor &> adaptive_max_pool2d_out_cpu(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef output_size);
CAFFE2_API std::tuple<Tensor &,Tensor &> adaptive_max_pool2d_out_cuda(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef output_size);
CAFFE2_API std::tuple<Tensor,Tensor> adaptive_max_pool2d_cpu(const Tensor & self, IntArrayRef output_size);
CAFFE2_API std::tuple<Tensor,Tensor> adaptive_max_pool2d_cuda(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor & adaptive_max_pool2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices);
CAFFE2_API Tensor & adaptive_max_pool2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices);
CAFFE2_API Tensor adaptive_max_pool2d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & indices);
CAFFE2_API Tensor adaptive_max_pool2d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & indices);
CAFFE2_API std::tuple<Tensor &,Tensor &> adaptive_max_pool3d_out_cpu(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef output_size);
CAFFE2_API std::tuple<Tensor &,Tensor &> adaptive_max_pool3d_out_cuda(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef output_size);
CAFFE2_API std::tuple<Tensor,Tensor> adaptive_max_pool3d_cpu(const Tensor & self, IntArrayRef output_size);
CAFFE2_API std::tuple<Tensor,Tensor> adaptive_max_pool3d_cuda(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor & adaptive_max_pool3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices);
CAFFE2_API Tensor & adaptive_max_pool3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices);
CAFFE2_API Tensor adaptive_max_pool3d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & indices);
CAFFE2_API Tensor adaptive_max_pool3d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & indices);
CAFFE2_API Tensor & avg_pool2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional<int64_t> divisor_override=c10::nullopt);
CAFFE2_API Tensor & avg_pool2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional<int64_t> divisor_override=c10::nullopt);
CAFFE2_API Tensor & mkldnn_avg_pool2d_out(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional<int64_t> divisor_override=c10::nullopt);
CAFFE2_API Tensor avg_pool2d_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional<int64_t> divisor_override=c10::nullopt);
CAFFE2_API Tensor avg_pool2d_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional<int64_t> divisor_override=c10::nullopt);
CAFFE2_API Tensor mkldnn_avg_pool2d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional<int64_t> divisor_override=c10::nullopt);
CAFFE2_API Tensor quantized_avg_pool2d(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional<int64_t> divisor_override=c10::nullopt);
CAFFE2_API Tensor & avg_pool2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional<int64_t> divisor_override);
CAFFE2_API Tensor & avg_pool2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional<int64_t> divisor_override);
CAFFE2_API Tensor avg_pool2d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional<int64_t> divisor_override);
CAFFE2_API Tensor avg_pool2d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional<int64_t> divisor_override);
CAFFE2_API Tensor & avg_pool3d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional<int64_t> divisor_override=c10::nullopt);
CAFFE2_API Tensor & avg_pool3d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional<int64_t> divisor_override=c10::nullopt);
CAFFE2_API Tensor avg_pool3d_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional<int64_t> divisor_override=c10::nullopt);
CAFFE2_API Tensor avg_pool3d_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, bool ceil_mode=false, bool count_include_pad=true, c10::optional<int64_t> divisor_override=c10::nullopt);
CAFFE2_API Tensor & avg_pool3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional<int64_t> divisor_override);
CAFFE2_API Tensor & avg_pool3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional<int64_t> divisor_override);
CAFFE2_API Tensor avg_pool3d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional<int64_t> divisor_override);
CAFFE2_API Tensor avg_pool3d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, bool ceil_mode, bool count_include_pad, c10::optional<int64_t> divisor_override);
CAFFE2_API std::tuple<Tensor &,Tensor &> fractional_max_pool2d_out_cpu(Tensor & output, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples);
CAFFE2_API std::tuple<Tensor &,Tensor &> fractional_max_pool2d_out_cuda(Tensor & output, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples);
CAFFE2_API std::tuple<Tensor,Tensor> fractional_max_pool2d_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples);
CAFFE2_API std::tuple<Tensor,Tensor> fractional_max_pool2d_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples);
CAFFE2_API Tensor & fractional_max_pool2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices);
CAFFE2_API Tensor & fractional_max_pool2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices);
CAFFE2_API Tensor fractional_max_pool2d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices);
CAFFE2_API Tensor fractional_max_pool2d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices);
CAFFE2_API std::tuple<Tensor &,Tensor &> fractional_max_pool3d_out_cpu(Tensor & output, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples);
CAFFE2_API std::tuple<Tensor &,Tensor &> fractional_max_pool3d_out_cuda(Tensor & output, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples);
CAFFE2_API std::tuple<Tensor,Tensor> fractional_max_pool3d_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples);
CAFFE2_API std::tuple<Tensor,Tensor> fractional_max_pool3d_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & random_samples);
CAFFE2_API Tensor & fractional_max_pool3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices);
CAFFE2_API Tensor & fractional_max_pool3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices);
CAFFE2_API Tensor fractional_max_pool3d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices);
CAFFE2_API Tensor fractional_max_pool3d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef output_size, const Tensor & indices);
CAFFE2_API std::tuple<Tensor &,Tensor &> max_pool2d_with_indices_out_cpu(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API std::tuple<Tensor &,Tensor &> max_pool2d_with_indices_out_cuda(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API std::tuple<Tensor,Tensor> max_pool2d_with_indices_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API std::tuple<Tensor,Tensor> max_pool2d_with_indices_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API Tensor & max_pool2d_with_indices_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices);
CAFFE2_API Tensor & max_pool2d_with_indices_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices);
CAFFE2_API Tensor max_pool2d_with_indices_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices);
CAFFE2_API Tensor max_pool2d_with_indices_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices);
CAFFE2_API std::tuple<Tensor &,Tensor &> max_pool3d_with_indices_out_cpu(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API std::tuple<Tensor &,Tensor &> max_pool3d_with_indices_out_cuda(Tensor & out, Tensor & indices, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API std::tuple<Tensor,Tensor> max_pool3d_with_indices_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API std::tuple<Tensor,Tensor> max_pool3d_with_indices_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride={}, IntArrayRef padding=0, IntArrayRef dilation=1, bool ceil_mode=false);
CAFFE2_API Tensor & max_pool3d_with_indices_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices);
CAFFE2_API Tensor & max_pool3d_with_indices_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices);
CAFFE2_API Tensor max_pool3d_with_indices_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices);
CAFFE2_API Tensor max_pool3d_with_indices_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, bool ceil_mode, const Tensor & indices);
CAFFE2_API Tensor & max_unpooling2d_forward_out_cpu(Tensor & out, const Tensor & self, const Tensor & indices, IntArrayRef output_size);
CAFFE2_API Tensor & max_unpooling2d_forward_out_cuda(Tensor & out, const Tensor & self, const Tensor & indices, IntArrayRef output_size);
CAFFE2_API Tensor max_unpooling2d_forward_cpu(const Tensor & self, const Tensor & indices, IntArrayRef output_size);
CAFFE2_API Tensor max_unpooling2d_forward_cuda(const Tensor & self, const Tensor & indices, IntArrayRef output_size);
CAFFE2_API Tensor & max_unpooling2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size);
CAFFE2_API Tensor & max_unpooling2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size);
CAFFE2_API Tensor max_unpooling2d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size);
CAFFE2_API Tensor max_unpooling2d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size);
CAFFE2_API Tensor & max_unpooling3d_forward_out_cpu(Tensor & out, const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding);
CAFFE2_API Tensor & max_unpooling3d_forward_out_cuda(Tensor & out, const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding);
CAFFE2_API Tensor max_unpooling3d_forward_cpu(const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding);
CAFFE2_API Tensor max_unpooling3d_forward_cuda(const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding);
CAFFE2_API Tensor & max_unpooling3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding);
CAFFE2_API Tensor & max_unpooling3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding);
CAFFE2_API Tensor max_unpooling3d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding);
CAFFE2_API Tensor max_unpooling3d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & indices, IntArrayRef output_size, IntArrayRef stride, IntArrayRef padding);
CAFFE2_API Tensor & reflection_pad1d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & reflection_pad1d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor reflection_pad1d_cpu(const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor reflection_pad1d_cuda(const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & reflection_pad1d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & reflection_pad1d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor reflection_pad1d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor reflection_pad1d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & reflection_pad2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & reflection_pad2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor reflection_pad2d_cpu(const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor reflection_pad2d_cuda(const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & reflection_pad2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & reflection_pad2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor reflection_pad2d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor reflection_pad2d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & replication_pad1d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & replication_pad1d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor replication_pad1d_cpu(const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor replication_pad1d_cuda(const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & replication_pad1d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & replication_pad1d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor replication_pad1d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor replication_pad1d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & replication_pad2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & replication_pad2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor replication_pad2d_cpu(const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor replication_pad2d_cuda(const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & replication_pad2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & replication_pad2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor replication_pad2d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor replication_pad2d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & replication_pad3d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & replication_pad3d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor replication_pad3d_cpu(const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor replication_pad3d_cuda(const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & replication_pad3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & replication_pad3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor replication_pad3d_backward_cpu(const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor replication_pad3d_backward_cuda(const Tensor & grad_output, const Tensor & self, IntArrayRef padding);
CAFFE2_API Tensor & upsample_linear1d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor & upsample_linear1d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor upsample_linear1d_cpu(const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor upsample_linear1d_cuda(const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor & upsample_linear1d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor & upsample_linear1d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor upsample_linear1d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor upsample_linear1d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor & upsample_bilinear2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor & upsample_bilinear2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor upsample_bilinear2d_cpu(const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor upsample_bilinear2d_cuda(const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor quantized_upsample_bilinear2d_cpu(const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor & upsample_bilinear2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor & upsample_bilinear2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor upsample_bilinear2d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor upsample_bilinear2d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor & upsample_bicubic2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor & upsample_bicubic2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor upsample_bicubic2d_cpu(const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor upsample_bicubic2d_cuda(const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor & upsample_bicubic2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor & upsample_bicubic2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor upsample_bicubic2d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor upsample_bicubic2d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor & upsample_trilinear3d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor & upsample_trilinear3d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor upsample_trilinear3d_cpu(const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor upsample_trilinear3d_cuda(const Tensor & self, IntArrayRef output_size, bool align_corners);
CAFFE2_API Tensor & upsample_trilinear3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor & upsample_trilinear3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor upsample_trilinear3d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor upsample_trilinear3d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size, bool align_corners);
CAFFE2_API Tensor & upsample_nearest1d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor & upsample_nearest1d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor upsample_nearest1d_cpu(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor upsample_nearest1d_cuda(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor & upsample_nearest1d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size);
CAFFE2_API Tensor & upsample_nearest1d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size);
CAFFE2_API Tensor upsample_nearest1d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size);
CAFFE2_API Tensor upsample_nearest1d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size);
CAFFE2_API Tensor & upsample_nearest2d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor & upsample_nearest2d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor upsample_nearest2d_cpu(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor upsample_nearest2d_cuda(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor quantized_upsample_nearest2d_cpu(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor & upsample_nearest2d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size);
CAFFE2_API Tensor & upsample_nearest2d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size);
CAFFE2_API Tensor upsample_nearest2d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size);
CAFFE2_API Tensor upsample_nearest2d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size);
CAFFE2_API Tensor & upsample_nearest3d_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor & upsample_nearest3d_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor upsample_nearest3d_cpu(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor upsample_nearest3d_cuda(const Tensor & self, IntArrayRef output_size);
CAFFE2_API Tensor & upsample_nearest3d_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size);
CAFFE2_API Tensor & upsample_nearest3d_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size);
CAFFE2_API Tensor upsample_nearest3d_backward_cpu(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size);
CAFFE2_API Tensor upsample_nearest3d_backward_cuda(const Tensor & grad_output, IntArrayRef output_size, IntArrayRef input_size);
CAFFE2_API Tensor & slow_conv_transpose2d_out_cpu(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1);
CAFFE2_API Tensor & slow_conv_transpose2d_out_cuda(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1);
CAFFE2_API Tensor slow_conv_transpose2d_cpu(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1);
CAFFE2_API Tensor slow_conv_transpose2d_cuda(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1);
CAFFE2_API std::tuple<Tensor &,Tensor &,Tensor &> slow_conv_transpose2d_backward_out_cpu(Tensor & grad_input, Tensor & grad_weight, Tensor & grad_bias, const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & columns, const Tensor & ones);
CAFFE2_API std::tuple<Tensor &,Tensor &,Tensor &> slow_conv_transpose2d_backward_out_cuda(Tensor & grad_input, Tensor & grad_weight, Tensor & grad_bias, const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & columns, const Tensor & ones);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> slow_conv_transpose2d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & columns, const Tensor & ones, std::array<bool,3> output_mask);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> slow_conv_transpose2d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & columns, const Tensor & ones, std::array<bool,3> output_mask);
CAFFE2_API Tensor & slow_conv_transpose3d_out_cpu(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1);
CAFFE2_API Tensor & slow_conv_transpose3d_out_cuda(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1);
CAFFE2_API Tensor slow_conv_transpose3d_cpu(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1);
CAFFE2_API Tensor slow_conv_transpose3d_cuda(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef output_padding=0, IntArrayRef dilation=1);
CAFFE2_API std::tuple<Tensor &,Tensor &,Tensor &> slow_conv_transpose3d_backward_out_cpu(Tensor & grad_input, Tensor & grad_weight, Tensor & grad_bias, const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & finput, const Tensor & fgrad_input);
CAFFE2_API std::tuple<Tensor &,Tensor &,Tensor &> slow_conv_transpose3d_backward_out_cuda(Tensor & grad_input, Tensor & grad_weight, Tensor & grad_bias, const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & finput, const Tensor & fgrad_input);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> slow_conv_transpose3d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & finput, const Tensor & fgrad_input, std::array<bool,3> output_mask);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> slow_conv_transpose3d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef output_padding, IntArrayRef dilation, const Tensor & finput, const Tensor & fgrad_input, std::array<bool,3> output_mask);
CAFFE2_API Tensor & thnn_conv2d_out(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0);
CAFFE2_API Tensor thnn_conv2d(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0);
CAFFE2_API Tensor & thnn_conv_depthwise2d_out(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1);
CAFFE2_API Tensor thnn_conv_depthwise2d(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1);
CAFFE2_API Tensor & thnn_conv3d_out(Tensor & out, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0);
CAFFE2_API Tensor thnn_conv3d(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0);
CAFFE2_API Tensor slow_conv_dilated2d_cpu(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1);
CAFFE2_API Tensor slow_conv_dilated2d_cuda(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> slow_conv_dilated2d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, std::array<bool,3> output_mask);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> slow_conv_dilated2d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, std::array<bool,3> output_mask);
CAFFE2_API Tensor slow_conv_dilated3d_cpu(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1);
CAFFE2_API Tensor slow_conv_dilated3d_cuda(const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, const Tensor & bias={}, IntArrayRef stride=1, IntArrayRef padding=0, IntArrayRef dilation=1);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> slow_conv_dilated3d_backward_cpu(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, std::array<bool,3> output_mask);
CAFFE2_API std::tuple<Tensor,Tensor,Tensor> slow_conv_dilated3d_backward_cuda(const Tensor & grad_output, const Tensor & self, const Tensor & weight, IntArrayRef kernel_size, IntArrayRef stride, IntArrayRef padding, IntArrayRef dilation, std::array<bool,3> output_mask);
CAFFE2_API Tensor & col2im_out_cpu(Tensor & out, const Tensor & self, IntArrayRef output_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor & col2im_out_cuda(Tensor & out, const Tensor & self, IntArrayRef output_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor col2im_cpu(const Tensor & self, IntArrayRef output_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor col2im_cuda(const Tensor & self, IntArrayRef output_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor & col2im_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor & col2im_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor col2im_backward_cpu(const Tensor & grad_output, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor col2im_backward_cuda(const Tensor & grad_output, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor & im2col_out_cpu(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor & im2col_out_cuda(Tensor & out, const Tensor & self, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor im2col_cpu(const Tensor & self, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor im2col_cuda(const Tensor & self, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor & im2col_backward_out_cpu(Tensor & grad_input, const Tensor & grad_output, IntArrayRef input_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor & im2col_backward_out_cuda(Tensor & grad_input, const Tensor & grad_output, IntArrayRef input_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor im2col_backward_cpu(const Tensor & grad_output, IntArrayRef input_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
CAFFE2_API Tensor im2col_backward_cuda(const Tensor & grad_output, IntArrayRef input_size, IntArrayRef kernel_size, IntArrayRef dilation, IntArrayRef padding, IntArrayRef stride);
 
} // namespace native
} // namespace at