__init__.py 16.8 KB
Newer Older
1
# Copyright (c) 2016 PaddlePaddle Authors. All Rights Reserved
2 3 4 5 6 7 8 9 10 11 12 13
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
14

15 16
from .attribute import is_complex  # noqa: F401
from .attribute import is_integer  # noqa: F401
17 18 19 20
from .attribute import rank  # noqa: F401
from .attribute import shape  # noqa: F401
from .attribute import real  # noqa: F401
from .attribute import imag  # noqa: F401
W
wuhuanzhou 已提交
21
from .attribute import is_floating_point  # noqa: F401
22 23
from .creation import create_parameter  # noqa: F401
from .creation import create_tensor  # noqa: F401
24 25
from .creation import to_tensor  # noqa: F401
from .creation import diag  # noqa: F401
L
Li Min 已提交
26
from .creation import diagflat  # noqa: F401
27 28
from .creation import eye  # noqa: F401
from .creation import linspace  # noqa: F401
29
from .creation import fill_constant  # noqa: F401
30 31 32 33 34 35 36 37 38 39 40 41
from .creation import ones  # noqa: F401
from .creation import ones_like  # noqa: F401
from .creation import zeros  # noqa: F401
from .creation import zeros_like  # noqa: F401
from .creation import arange  # noqa: F401
from .creation import full  # noqa: F401
from .creation import full_like  # noqa: F401
from .creation import triu  # noqa: F401
from .creation import tril  # noqa: F401
from .creation import meshgrid  # noqa: F401
from .creation import empty  # noqa: F401
from .creation import empty_like  # noqa: F401
F
Feiyu Chan 已提交
42
from .creation import complex  # noqa: F401
43
from .creation import polar  # noqa: F401
44 45
from .linalg import matmul  # noqa: F401
from .linalg import dot  # noqa: F401
Z
zhiboniu 已提交
46
from .linalg import cov  # noqa: F401
47
from .linalg import corrcoef  # noqa: F401
48
from .linalg import norm  # noqa: F401
49
from .linalg import pca_lowrank  # noqa: F401
50
from .linalg import cond  # noqa: F401
51
from .linalg import transpose  # noqa: F401
52
from .linalg import lstsq  # noqa: F401
53 54 55 56 57 58
from .linalg import dist  # noqa: F401
from .linalg import t  # noqa: F401
from .linalg import cross  # noqa: F401
from .linalg import cholesky  # noqa: F401
from .linalg import bmm  # noqa: F401
from .linalg import histogram  # noqa: F401
S
smallv0221 已提交
59
from .linalg import bincount  # noqa: F401
60
from .linalg import mv  # noqa: F401
L
Lijunhui 已提交
61
from .linalg import eig  # noqa: F401
62
from .linalg import matrix_power  # noqa: F401
63
from .linalg import qr  # noqa: F401
64
from .linalg import eigvals  # noqa: F401
65 66
from .linalg import multi_dot  # noqa: F401
from .linalg import svd  # noqa: F401
67
from .linalg import eigvalsh  # noqa: F401
68
from .linalg import eigh  # noqa: F401
A
andyjpaddle 已提交
69
from .linalg import pinv  # noqa: F401
W
Weilong Wu 已提交
70
from .linalg import solve  # noqa: F401
Z
zhiboniu 已提交
71
from .linalg import cholesky_solve  # noqa: F401
72 73
from .linalg import lu  # noqa: F401
from .linalg import lu_unpack  # noqa: F401
74
from .linalg import cdist  # noqa: F401
75 76 77 78 79 80 81 82 83 84
from .logic import equal  # noqa: F401
from .logic import greater_equal  # noqa: F401
from .logic import greater_than  # noqa: F401
from .logic import is_empty  # noqa: F401
from .logic import less_equal  # noqa: F401
from .logic import less_than  # noqa: F401
from .logic import logical_and  # noqa: F401
from .logic import logical_not  # noqa: F401
from .logic import logical_or  # noqa: F401
from .logic import logical_xor  # noqa: F401
85 86 87 88
from .logic import bitwise_and  # noqa: F401
from .logic import bitwise_or  # noqa: F401
from .logic import bitwise_xor  # noqa: F401
from .logic import bitwise_not  # noqa: F401
89 90
from .logic import not_equal  # noqa: F401
from .logic import allclose  # noqa: F401
A
andyjpaddle 已提交
91
from .logic import isclose  # noqa: F401
92 93 94 95 96 97
from .logic import equal_all  # noqa: F401
from .logic import is_tensor  # noqa: F401
from .manipulation import cast  # noqa: F401
from .manipulation import concat  # noqa: F401
from .manipulation import expand  # noqa: F401
from .manipulation import broadcast_to  # noqa: F401
98
from .manipulation import broadcast_tensors  # noqa: F401
99 100 101
from .manipulation import expand_as  # noqa: F401
from .manipulation import tile  # noqa: F401
from .manipulation import flatten  # noqa: F401
102
from .manipulation import flatten_  # noqa: F401
103 104 105 106 107 108 109 110 111 112 113 114
from .manipulation import gather  # noqa: F401
from .manipulation import gather_nd  # noqa: F401
from .manipulation import reshape  # noqa: F401
from .manipulation import reshape_  # noqa: F401
from .manipulation import flip as reverse  # noqa: F401
from .manipulation import scatter  # noqa: F401
from .manipulation import scatter_  # noqa: F401
from .manipulation import scatter_nd_add  # noqa: F401
from .manipulation import scatter_nd  # noqa: F401
from .manipulation import shard_index  # noqa: F401
from .manipulation import slice  # noqa: F401
from .manipulation import split  # noqa: F401
115
from .manipulation import vsplit  # noqa: F401
116 117 118 119 120
from .manipulation import squeeze  # noqa: F401
from .manipulation import squeeze_  # noqa: F401
from .manipulation import stack  # noqa: F401
from .manipulation import strided_slice  # noqa: F401
from .manipulation import unique  # noqa: F401
D
duanboqiang 已提交
121
from .manipulation import unique_consecutive  # noqa: F401
122 123 124 125
from .manipulation import unsqueeze  # noqa: F401
from .manipulation import unsqueeze_  # noqa: F401
from .manipulation import unstack  # noqa: F401
from .manipulation import flip  # noqa: F401
Z
zmxdream 已提交
126
from .manipulation import rot90  # noqa: F401
127 128 129
from .manipulation import unbind  # noqa: F401
from .manipulation import roll  # noqa: F401
from .manipulation import chunk  # noqa: F401
F
From00 已提交
130
from .manipulation import tensordot  # noqa: F401
131
from .manipulation import as_complex  # noqa: F401
132
from .manipulation import take_along_axis  # noqa: F401
133 134
from .manipulation import put_along_axis  # noqa: F401
from .manipulation import put_along_axis_  # noqa: F401
135
from .manipulation import as_real  # noqa: F401
136
from .manipulation import moveaxis  # noqa: F401
K
kuizhiqing 已提交
137
from .manipulation import repeat_interleave  # noqa: F401
L
Li Min 已提交
138 139
from .manipulation import index_add  # noqa: F401
from .manipulation import index_add_  # noqa: F401
傅剑寒 已提交
140 141
from .manipulation import index_put  # noqa: F401
from .manipulation import index_put_  # noqa: F401
142
from .manipulation import unflatten  # noqa: F401
143 144 145 146 147
from .math import abs  # noqa: F401
from .math import acos  # noqa: F401
from .math import asin  # noqa: F401
from .math import atan  # noqa: F401
from .math import ceil  # noqa: F401
148
from .math import ceil_  # noqa: F401
149 150 151 152
from .math import cos  # noqa: F401
from .math import tan  # noqa: F401
from .math import cosh  # noqa: F401
from .math import cumsum  # noqa: F401
153 154
from .math import cummax  # noqa: F401
from .math import cummin  # noqa: F401
H
hlygit66666 已提交
155
from .math import cumprod  # noqa: F401
156
from .math import logcumsumexp  # noqa: F401
W
wangzhen38 已提交
157
from .math import logit  # noqa: F401
158
from .math import exp  # noqa: F401
159
from .math import exp_  # noqa: F401
R
ronnywang 已提交
160
from .math import expm1  # noqa: F401
161
from .math import floor  # noqa: F401
162
from .math import floor_  # noqa: F401
163 164 165 166
from .math import increment  # noqa: F401
from .math import log  # noqa: F401
from .math import multiplex  # noqa: F401
from .math import pow  # noqa: F401
167
from .math import pow_  # noqa: F401
168
from .math import reciprocal  # noqa: F401
169
from .math import reciprocal_  # noqa: F401
170
from .math import round  # noqa: F401
171
from .math import round_  # noqa: F401
172
from .math import rsqrt  # noqa: F401
173
from .math import rsqrt_  # noqa: F401
174
from .math import scale  # noqa: F401
175
from .math import scale_  # noqa: F401
176 177 178 179
from .math import sign  # noqa: F401
from .math import sin  # noqa: F401
from .math import sinh  # noqa: F401
from .math import sqrt  # noqa: F401
180
from .math import sqrt_  # noqa: F401
181 182 183
from .math import square  # noqa: F401
from .math import stanh  # noqa: F401
from .math import sum  # noqa: F401
184
from .math import nan_to_num  # noqa: F401
W
wangguanqun 已提交
185
from .math import nansum  # noqa: F401
186
from .math import nanmean  # noqa: F401
187
from .math import count_nonzero  # noqa: F401
188 189 190 191
from .math import tanh  # noqa: F401
from .math import tanh_  # noqa: F401
from .math import add_n  # noqa: F401
from .math import max  # noqa: F401
T
Tao Luo 已提交
192
from .math import amax  # noqa: F401
193 194
from .math import maximum  # noqa: F401
from .math import min  # noqa: F401
T
Tao Luo 已提交
195
from .math import amin  # noqa: F401
196 197 198 199 200
from .math import minimum  # noqa: F401
from .math import mm  # noqa: F401
from .math import divide  # noqa: F401
from .math import floor_divide  # noqa: F401
from .math import remainder  # noqa: F401
201
from .math import remainder_  # noqa: F401
202 203 204
from .math import mod  # noqa: F401
from .math import floor_mod  # noqa: F401
from .math import multiply  # noqa: F401
205
from .math import multiply_  # noqa: F401
206
from .math import add  # noqa: F401
207
from .math import add_  # noqa: F401
208
from .math import subtract  # noqa: F401
209
from .math import subtract_  # noqa: F401
R
ronnywang 已提交
210
from .math import atan2  # noqa: F401
211
from .math import logsumexp  # noqa: F401
Z
zhiboniu 已提交
212
from .math import logaddexp  # noqa: F401
213 214 215 216 217 218 219
from .math import inverse  # noqa: F401
from .math import log2  # noqa: F401
from .math import log10  # noqa: F401
from .math import log1p  # noqa: F401
from .math import erf  # noqa: F401
from .math import addmm  # noqa: F401
from .math import clip  # noqa: F401
220
from .math import clip_  # noqa: F401
221 222 223 224 225 226 227 228 229 230
from .math import trace  # noqa: F401
from .math import kron  # noqa: F401
from .math import isfinite  # noqa: F401
from .math import isinf  # noqa: F401
from .math import isnan  # noqa: F401
from .math import prod  # noqa: F401
from .math import all  # noqa: F401
from .math import any  # noqa: F401
from .math import broadcast_shape  # noqa: F401
from .math import conj  # noqa: F401
231
from .math import trunc  # noqa: F401
Z
zyfncg 已提交
232
from .math import digamma  # noqa: F401
233 234
from .math import neg  # noqa: F401
from .math import lgamma  # noqa: F401
235
from .math import diagonal  # noqa: F401
X
xiaoting 已提交
236 237 238
from .math import acosh  # noqa: F401
from .math import asinh  # noqa: F401
from .math import atanh  # noqa: F401
239 240
from .math import lerp  # noqa: F401
from .math import lerp_  # noqa: F401
W
wuhuanzhou 已提交
241 242
from .math import erfinv  # noqa: F401
from .math import erfinv_  # noqa: F401
243 244
from .math import rad2deg  # noqa: F401
from .math import deg2rad  # noqa: F401
T
Tao Luo 已提交
245 246
from .math import gcd  # noqa: F401
from .math import lcm  # noqa: F401
A
andyjpaddle 已提交
247
from .math import diff  # noqa: F401
F
Feiyu Chan 已提交
248
from .math import angle  # noqa: F401
L
LJQ❤️ 已提交
249 250
from .math import fmax  # noqa: F401
from .math import fmin  # noqa: F401
Z
zhiboniu 已提交
251 252
from .math import inner  # noqa: F401
from .math import outer  # noqa: F401
253
from .math import heaviside  # noqa: F401
254
from .math import frac  # noqa: F401
255
from .math import sgn  # noqa: F401
256
from .math import take  # noqa: F401
257
from .math import frexp  # noqa: F401
258
from .math import ldexp  # noqa: F401
259 260
from .math import trapezoid  # noqa: F401
from .math import cumulative_trapezoid  # noqa: F401
261 262
from .math import sigmoid  # noqa: F401
from .math import sigmoid_  # noqa: F401
263
from .math import vander  # noqa: F401
264
from .math import nextafter  # noqa: F401
265 266
from .math import i0  # noqa: F401
from .math import i0e  # noqa: F401
267 268
from .math import i1  # noqa: F401
from .math import i1e  # noqa: F401
269
from .math import polygamma  # noqa: F401
270

271 272 273 274
from .random import multinomial  # noqa: F401
from .random import standard_normal  # noqa: F401
from .random import normal  # noqa: F401
from .random import uniform  # noqa: F401
J
JYChen 已提交
275
from .random import uniform_  # noqa: F401
276 277 278
from .random import randn  # noqa: F401
from .random import rand  # noqa: F401
from .random import randint  # noqa: F401
279
from .random import randint_like  # noqa: F401
280
from .random import randperm  # noqa: F401
281
from .random import poisson  # noqa: F401
282
from .random import exponential_  # noqa: F401
283 284 285
from .search import argmax  # noqa: F401
from .search import argmin  # noqa: F401
from .search import argsort  # noqa: F401
Y
Yanxing Shi 已提交
286
from .search import searchsorted  # noqa: F401
287
from .search import bucketize  # noqa: F401
288 289 290 291 292 293 294
from .search import topk  # noqa: F401
from .search import where  # noqa: F401
from .search import index_select  # noqa: F401
from .search import nonzero  # noqa: F401
from .search import sort  # noqa: F401
from .search import index_sample  # noqa: F401
from .search import masked_select  # noqa: F401
295
from .search import kthvalue  # noqa: F401
296 297
from .search import mode  # noqa: F401

298 299 300 301 302
from .stat import mean  # noqa: F401
from .stat import std  # noqa: F401
from .stat import var  # noqa: F401
from .stat import numel  # noqa: F401
from .stat import median  # noqa: F401
303
from .stat import nanmedian  # noqa: F401
304
from .stat import quantile  # noqa: F401
305
from .stat import nanquantile  # noqa: F401
306

307
from .to_string import set_printoptions  # noqa: F401
308

309 310 311 312
from .array import array_length  # noqa: F401
from .array import array_read  # noqa: F401
from .array import array_write  # noqa: F401
from .array import create_array  # noqa: F401
L
Leo Chen 已提交
313

T
Tongxin Bai 已提交
314 315
from .einsum import einsum  # noqa: F401

316 317
# this list used in math_op_patch.py for _binary_creator_
tensor_method_func = [  # noqa
318 319
    'create_parameter',
    'create_tensor',
320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337
    'matmul',
    'dot',
    'cov',
    'corrcoef',
    'norm',
    'cond',
    'transpose',
    'lstsq',
    'dist',
    't',
    'cross',
    'cholesky',
    'bmm',
    'histogram',
    'bincount',
    'mv',
    'matrix_power',
    'qr',
338
    'pca_lowrank',
339 340 341 342 343 344 345 346 347 348 349 350 351
    'eigvals',
    'eigvalsh',
    'abs',
    'acos',
    'all',
    'any',
    'asin',
    'atan',
    'ceil',
    'ceil_',
    'cos',
    'cosh',
    'cumsum',
352 353
    'cummax',
    'cummin',
354
    'cumprod',
355
    'logcumsumexp',
356 357 358
    'logit',
    'exp',
    'exp_',
359
    'expm1',
360 361 362
    'floor',
    'floor_',
    'increment',
Z
zhiboniu 已提交
363
    'logaddexp',
364 365 366 367 368 369
    'log',
    'log2',
    'log10',
    'logsumexp',
    'multiplex',
    'pow',
370
    'pow_',
371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387
    'prod',
    'reciprocal',
    'reciprocal_',
    'round',
    'round_',
    'rsqrt',
    'rsqrt_',
    'scale',
    'scale_',
    'sign',
    'sin',
    'sinh',
    'sqrt',
    'sqrt_',
    'square',
    'stanh',
    'sum',
388
    'nan_to_num',
389 390
    'nansum',
    'nanmean',
391
    'count_nonzero',
392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408
    'tanh',
    'tanh_',
    'add_n',
    'max',
    'amax',
    'maximum',
    'min',
    'amin',
    'minimum',
    'fmax',
    'fmin',
    'mm',
    'inner',
    'outer',
    'divide',
    'floor_divide',
    'remainder',
409
    'remainder_',
410 411 412
    'mod',
    'floor_mod',
    'multiply',
413
    'multiply_',
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
    'add',
    'add_',
    'subtract',
    'subtract_',
    'atan',
    'logsumexp',
    'inverse',
    'log1p',
    'erf',
    'addmm',
    'clip',
    'clip_',
    'trace',
    'kron',
    'kthvalue',
    'isfinite',
    'isinf',
    'isnan',
    'broadcast_shape',
    'conj',
    'neg',
    'lgamma',
    'equal',
    'equal_all',
    'greater_equal',
    'greater_than',
    'is_empty',
    'less_equal',
    'less_than',
    'logical_and',
    'logical_not',
    'logical_or',
    'logical_xor',
    'not_equal',
    'allclose',
    'isclose',
    'is_tensor',
    'cast',
    'concat',
    'expand',
    'broadcast_to',
    'expand_as',
    'flatten',
    'flatten_',
    'gather',
    'gather_nd',
    'reshape',
    'reshape_',
    'reverse',
    'scatter',
    'scatter_',
    'scatter_nd_add',
    'scatter_nd',
    'shard_index',
    'slice',
    'split',
470
    'vsplit',
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
    'chunk',
    'tensordot',
    'squeeze',
    'squeeze_',
    'stack',
    'strided_slice',
    'transpose',
    'unique',
    'unique_consecutive',
    'unsqueeze',
    'unsqueeze_',
    'unstack',
    'flip',
    'rot90',
    'unbind',
    'roll',
    'tile',
    'argmax',
    'argmin',
    'argsort',
    'masked_select',
    'topk',
    'where',
    'index_select',
    'nonzero',
    'sort',
    'index_sample',
    'mean',
    'std',
    'var',
    'numel',
    'median',
    'nanmedian',
    'quantile',
    'nanquantile',
    'is_complex',
    'is_integer',
    'rank',
    'shape',
    'real',
    'imag',
    'is_floating_point',
    'digamma',
    'diagonal',
    'trunc',
    'frac',
    'bitwise_and',
    'bitwise_or',
    'bitwise_xor',
    'bitwise_not',
    'broadcast_tensors',
    'eig',
    'uniform_',
    'multi_dot',
    'solve',
    'cholesky_solve',
    'triangular_solve',
    'asinh',
    'atanh',
    'acosh',
    'lu',
    'lu_unpack',
533
    'cdist',
534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553
    'as_complex',
    'as_real',
    'rad2deg',
    'deg2rad',
    'gcd',
    'lcm',
    'diff',
    "mode",
    'lerp',
    'lerp_',
    'erfinv',
    'erfinv_',
    'angle',
    'moveaxis',
    'repeat_interleave',
    'take_along_axis',
    'put_along_axis',
    'put_along_axis_',
    'exponential_',
    'heaviside',
L
Li Min 已提交
554 555
    'index_add',
    "index_add_",
傅剑寒 已提交
556 557
    'index_put',
    'index_put_',
558
    'take',
559
    'bucketize',
560
    'sgn',
561
    'frexp',
562
    'ldexp',
563 564
    'trapezoid',
    'cumulative_trapezoid',
565
    'polar',
566 567
    'sigmoid',
    'sigmoid_',
568
    'vander',
569
    'nextafter',
570
    'unflatten',
571 572
    'i0',
    'i0e',
573 574
    'i1',
    'i1e',
575
    'polygamma',
576 577
]

578
# this list used in math_op_patch.py for magic_method bind
579 580 581 582 583
magic_method_func = [
    ('__and__', 'bitwise_and'),
    ('__or__', 'bitwise_or'),
    ('__xor__', 'bitwise_xor'),
    ('__invert__', 'bitwise_not'),
584
]