تاریخ را ذخیره کنید! Google I / O 18-20 مه بازمی گردد اکنون ثبت نام کنید
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

تعریف 'tfl' را گویش کنید

گویش TensorFlow Lite.

این گویش نقشه TensorFlow Lite را نشان می دهد.

بویندگان:

  • همه مقادیر از نوع تنسور هستند (به طور خاص ، مقیاس کش ها با استفاده از سنسورهای صفر بعدی نشان داده می شوند).

تعریف عملیات

tfl.abs (TFL :: AbsOp)

عملگر ارزش مطلق

شرح:

با توجه به tensor x ، این عملیات یک tensor را برمی گرداند که حاوی مقدار مطلق هر عنصر در x . به عنوان مثال ، اگر x یک عنصر ورودی است و y یک عنصر خروجی است ، این عملیات \(y = |x|\) را محاسبه می کند.

کارخانه ها:

  1. x : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. y : تنسور از هر نوع مقداری

tfl.add_n (TFL :: AddNOp)

عملگر add_n

شرح:

همه سنسورهای ورودی را از نظر عناصر اضافه می کند.

کارخانه ها:

  1. inputs : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. sum : تنسور از هر نوع مقداری

tfl.add (TFL :: AddOp)

اپراتور افزودنی

شرح:

عملیات جمع آوری عناصر.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
fused_activation_function StringAttr ویژگی enum فعال سازی ذوب شده

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.arg_max (TFL :: ArgMaxOp)

اپراتور ArgMax

شرح:

شاخص را با بیشترین مقدار در ابعاد تنسور برمی گرداند.

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. dim : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
output_type Attribute صفت صفت مشتق شده

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.arg_min (TFL :: ArgMinOp)

اپراتور ArgMin

شرح:

شاخص را با کمترین مقدار در ابعاد تنسور برمی گرداند. "a = [1، 10، 26.9، 2.8، 166.32، 62.3] b = tf.math.argmin (input = a) c = tf.keras.backend.eval (ب)

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. dim : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
output_type Attribute صفت صفت مشتق شده

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.average_pool_2d (TFL :: AveragePool2DOp)

عملگر Average_pool_2d

شرح:

عملکرد استخر متوسط ​​را بر روی ورودی انجام می دهد.

کارخانه ها:

  1. input : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
filter_height IntegerAttr ویژگی صحیح 32 بیتی
filter_width IntegerAttr ویژگی صحیح 32 بیتی
padding StringAttr ویژگی enum padding
stride_h IntegerAttr ویژگی صحیح 32 بیتی
stride_w IntegerAttr ویژگی صحیح 32 بیتی
fused_activation_function StringAttr ویژگی enum فعال سازی ذوب شده

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.basic_lstm (TFL :: BasicLSTMOp)

عملگر پایه lstm

شرح:

اپراتور اصلی سلول LSTM.

کارخانه ها:

  1. data_input : تنسور از هر نوع مقداری
  2. prev_activ_input : تنسور از هر نوع مقداری
  3. weights_input : تنسور از هر نوع مقداری
  4. biases_input : تنسور از هر نوع مقداری
  5. prev_state_input : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
fused_activation_function StringAttr ویژگی enum فعال سازی ذوب شده
cell_clip FloatAttr ویژگی صفت 32 بیتی
proj_clip FloatAttr ویژگی صفت 32 بیتی
kernel_type StringAttr نوع هسته lstm ویژگی BASIC از نوع enum است

نتایج:

  1. activ_output : تنسور 2D از هر نوع مقداری
  2. state_output : تنسور 2D از هر نوع مقداری
  3. concat_temp : تنسور 2D از هر نوع مقداری
  4. activ_temp : تنسور 2D از هر نوع مقداری

tfl.batch_to_space_nd (TFL :: BatchToSpaceNdOp)

عملگر BatchToSpaceNd

شرح:

این عملیات بعد "دسته" 0 را به ابعاد فضا تغییر می دهد.

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. block_shape : تنسور از هر نوع مقداری
  3. indices : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.cast (TFL :: CastOp)

اپراتور بازیگران

شرح:

ورودی را از نوع ورودی به نوع خروجی می فرستد.

کارخانه ها:

  1. input : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.ceil (TFL :: CeilOp)

اپراتور سقف

شرح:

مقدار سقف ورودی را از نظر عناصر برمی گرداند.

کارخانه ها:

  1. x : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. y : تنسور از هر نوع مقداری

tfl.concatenation (TFL :: ConcatenationOp)

اپراتور اتصال

شرح:

حسگرها را در یک بعد متصل می کند

کارخانه ها:

  1. values : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
axis IntegerAttr ویژگی صحیح 32 بیتی
fused_activation_function StringAttr ویژگی enum فعال سازی ذوب شده

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.pseudo_const (TFL :: ConstOp)

شبه ثابت op.

شرح:

یک مقدار ثابت را در گویش TensorFlow Lite نشان می دهد. این یک عمل واقعی نیست و در عوض به بافر کاهش می یابد.

op مجاز است که همان نوع ویژگی را با tf داشته باشد. ساختار (مانند ویژگی های مات TF مجاز است).

کارخانه ها:

ویژگی های:

صفت نوع MLIR شرح
value ElementsAttr ویژگی ثابت بردار / تنسور

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.conv_2d (TFL :: Conv2DOp)

اپراتور کانولوشن

شرح:

عملیات کانولوشن را روی ورودی ها انجام می دهد.

ورودی ها: inputs[0] : مورد نیاز: ورودی های تانسور فعال سازی inputs[1] : مورد نیاز: inputs[2] تانسور وزن فیلتر inputs[2] : اختیاری: تانسور بایاس

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. filter : تنسور از هر نوع مقداری
  3. bias : تنسور از هر نوع مقداری یا هیچ نوع

ویژگی های:

صفت نوع MLIR شرح
dilation_h_factor IntegerAttr ویژگی صحیح 32 بیتی
dilation_w_factor IntegerAttr ویژگی صحیح 32 بیتی
fused_activation_function StringAttr ویژگی enum فعال سازی ذوب شده
padding StringAttr ویژگی enum padding
stride_h IntegerAttr ویژگی صحیح 32 بیتی
stride_w IntegerAttr ویژگی صحیح 32 بیتی

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.convolution_2d_transpose_bias (TFL :: Convolution2DTransposeBiasOp)

انتقال دهنده را با عملگر بایاس انتقال دهید

شرح:

با استفاده از گزینه افزودن تعصب ، عملیات جمع کردن را روی ورودی ها انجام می دهد. توجه داشته باشید این یک عملیات سفارشی است که در زمان اجرا استاندارد پشتیبانی نمی شود.

Inputs:
  `inputs[0]`: required: the input activation tensor
  `inputs[1]`: required: the filter weight tensor
  `inputs[2]`: optional: the bias tensor

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. filter : تنسور از هر نوع مقداری
  3. bias : تنسور از هر نوع مقداری یا هیچ نوع

ویژگی های:

صفت نوع MLIR شرح
padding StringAttr ویژگی enum padding
stride_h IntegerAttr ویژگی صحیح 32 بیتی
stride_w IntegerAttr ویژگی صحیح 32 بیتی

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.cos (TFL :: CosOp)

اپراتور کسینوس

شرح:

کسینوس ورودی از نظر عناصر را محاسبه می کند

کارخانه ها:

  1. x : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. y : تنسور از هر نوع مقداری

tfl.densify (TFL :: DensifyOp)

اپراتور را متراکم کنید

شرح:

تانسور پراکنده را به قالب متراکم تبدیل می کند.

کارخانه ها:

  1. input : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.depth_to_space (TFL :: DepthToSpaceOp)

اپراتور DepthToSpace

شرح:

داده ها را از عمق به بلوک های داده های مکانی مرتب می کند. این تحول معکوس SpaceToDepth است. به طور خاص ، این op یک کپی از سنسور ورودی را در جایی که مقادیر از بعد depth در بلوک های فضایی به ابعاد height و width شوند ، خارج می کند. attr block_size اندازه بلوک ورودی و نحوه انتقال داده را نشان می دهد.

کارخانه ها:

  1. input : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
block_size IntegerAttr ویژگی صحیح 32 بیتی

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.depthwise_conv_2d (TFL :: DepthwiseConv2DOp)

عملگر کانولوشن قابل جدا شدن از عمق

شرح:

عملیات کانولوشن را روی ورودی ها انجام می دهد.

ورودی ها: inputs[0] : مورد نیاز: ورودی های تانسور فعال سازی inputs[1] : مورد نیاز: inputs[2] تانسور وزن فیلتر inputs[2] : اختیاری: تانسور بایاس

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. filter : تنسور از هر نوع مقداری
  3. bias : تنسور از هر نوع مقداری یا هیچ نوع

ویژگی های:

صفت نوع MLIR شرح
dilation_h_factor IntegerAttr ویژگی صحیح 32 بیتی
dilation_w_factor IntegerAttr ویژگی صحیح 32 بیتی
fused_activation_function StringAttr ویژگی enum فعال سازی ذوب شده
padding StringAttr ویژگی enum padding
stride_h IntegerAttr ویژگی صحیح 32 بیتی
stride_w IntegerAttr ویژگی صحیح 32 بیتی
depth_multiplier IntegerAttr ویژگی صحیح 32 بیتی

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.dequantize (TFL :: DequantizeOp)

كاهش عملگر

شرح:

با توجه به پارامترهای کوانتاسیون ، آرایه کوانتیزه شده از اعداد صحیح را به نقاط شناور تبدیل می کند.

کارخانه ها:

  1. input : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.div (TFL :: DivOp)

اپراتور بخش

شرح:

عملیات تقسیم عناصر.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
fused_activation_function StringAttr ویژگی enum فعال سازی ذوب شده

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.elu (TFL :: EluOp)

عملگر واحد خطی نمایی

شرح:

خط خطی نمایی (x) -> exp (x) - 1 را برای x <0 ، x را برای x> = 0 را محاسبه می کند.

کارخانه ها:

  1. x : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. y : تنسور از هر نوع مقداری

tfl.embedding_lookup (TFL :: EmbeddingLookupOp)

جاسازی اپراتور جستجوی

شرح:

شناسه ها را در لیستی از سنسورهای تعبیه شده جستجو می کند.

کارخانه ها:

  1. lookup : تنسور از هر نوع مقداری
  2. value : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.equal (TFL :: EqualOp)

اپراتور برابر

شرح:

عنصر حقیقت x == y را از نظر عناصر برمی گرداند

کارخانه ها:

  1. x : تنسور از هر نوع مقداری
  2. y : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.exp (TFL :: ExpOp)

اپراتور نمایش طبیعی

شرح:

عملیات نمایش طبیعی از نظر عناصر را بر روی ورودی انجام می دهد.

کارخانه ها:

  1. x : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. y : تنسور از هر نوع مقداری

tfl.expand_dims (TFL :: ExpandDimsOp)

بعد 1 را به شکل تانسور وارد می کند.

شرح:

با توجه به input تنسور ، این عملیات یک بعد 1 در axis شاخص بعد شکل input کند. axis شاخص بعد از صفر شروع می شود. اگر یک عدد منفی برای axis کنید ، از انتها به عقب شمرده می شود.

اگر می خواهید بعد دسته ای را به یک عنصر واحد اضافه کنید ، این عملیات مفید است. به عنوان مثال ، اگر یک تصویر از شکل [height, width, channels] باشید ، می توانید آن را به صورت دسته ای از 1 تصویر با expand_dims(image, 0) ، که شکل [1, height, width, channels] .

مثالهای دیگر:

# 't' is a tensor of shape [2]
shape(expand_dims(t, 0)) ==> [1, 2]
shape(expand_dims(t, 1)) ==> [2, 1]
shape(expand_dims(t, -1)) ==> [2, 1]

# 't2' is a tensor of shape [2, 3, 5]
shape(expand_dims(t2, 0)) ==> [1, 2, 3, 5]
shape(expand_dims(t2, 2)) ==> [2, 3, 1, 5]
shape(expand_dims(t2, 3)) ==> [2, 3, 5, 1]

این عملیات مستلزم این است که:

-1-input.dims() <= dim <= input.dims()

این عملیات مربوط به squeeze() که ابعاد اندازه 1 را حذف می کند.

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. dim : تنسور از هر نوع عدد صحیح

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.external_const (TFL :: ExternalConstOp)

ساختار خارجی

شرح:

buffer_index خارجی یک buffer_index که به یک ثابت در بافر اشاره می کند.

کارخانه ها:

ویژگی های:

صفت نوع MLIR شرح
buffer_index IntegerAttr ویژگی صحیح 32 بیتی

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.fake_quant (TFL :: FakeQuantOp)

اپراتور FakeQuant

شرح:

اندازه گیری جعلی تانسور ورودی ها از نوع شناور از طریق مقیاس های شناور دقیقه و حداکثر تا تانسور "خروجی" همان شکل ورودی ها.

کارخانه ها:

  1. input : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
min FloatAttr ویژگی صفت 32 بیتی
max FloatAttr ویژگی صفت 32 بیتی
num_bits IntegerAttr ویژگی صحیح 32 بیتی
narrow_range BoolAttr ویژگی bool

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.fill (TFL :: FillOp)

سنسور را با مقدار داده شده پر کنید.

شرح:

سنسور را با مقدار داده شده پر کنید.

کارخانه ها:

  1. dims : تنسور از هر نوع مقداری
  2. value : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. res : تنسور از هر نوع مقداری

tfl.floor_div (TFL :: FloorDivOp)

اپراتور طبقه

شرح:

عملیات تقسیم طبقه از نظر عناصر.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.floor_mod (TFL :: FloorModOp)

یادآوری بخش

شرح:

عملیات یادآوری تقسیم عناصر.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.floor (TFL :: FloorOp)

اپراتور کف

شرح:

مقدار طبقه ورودی را از نظر عناصر برمی گرداند.

کارخانه ها:

  1. x : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. y : تنسور از هر نوع مقداری

tfl.fully_connected (TFL :: FullyConnectedOp)

کاملاً متصل op

شرح:

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. filter : تنسور از هر نوع مقداری
  3. bias : تنسور از هر نوع مقداری یا هیچ نوع

ویژگی های:

صفت نوع MLIR شرح
fused_activation_function StringAttr ویژگی enum فعال سازی ذوب شده
weights_format StringAttr گزینه های کاملا متصل ویژگیهای قالب وزنها
keep_num_dims BoolAttr ویژگی bool

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.gather_nd (TFL :: GatherNdOp)

اپراتور Gather_nd

شرح:

برش هایی را از params به داخل یک Tensor با شکل مشخص شده توسط indices .

کارخانه ها:

  1. params : تنسور از هر نوع مقداری
  2. indices : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.gather (TFL :: GatherOp)

اپراتور جمع کنید

شرح:

جمع آوری برش از params محور axis با توجه به indices .

کارخانه ها:

  1. params : تنسور از هر نوع مقداری
  2. indices : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
axis IntegerAttr ویژگی صحیح 32 بیتی

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.greater_equal (TFL :: GreaterEqualOp)

عملگر برابرتر

شرح:

از نظر عناصر بزرگتر عمل می کند

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.greater (TFL :: GreaterOp)

اپراتور بزرگتر

شرح:

عملکرد بیشتر از نظر عناصر.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.hard_swish (TFL :: HardSwishOp)

عملکرد فعال سازی Hardswish.

شرح:

تابع فعال سازی چرخش سخت f (x) -> (x * relu6 (x + 3)) / 6 را از نظر عناصر محاسبه می کند.

کارخانه ها:

  1. input : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. out : تنسور از هر نوع مقداری

tfl.l2_normalization (TFL :: L2NormalizationOp)

L2 اپراتور را عادی کنید

شرح:

L2Normalization Op

کارخانه ها:

  1. input : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
fused_activation_function StringAttr ویژگی enum فعال سازی ذوب شده

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.lstm (TFL :: LSTMOp)

عملگر lstm کامل

شرح:

لایه حافظه کوتاه مدت واحد حافظه کوتاه مدت (LSTM). http://deeplearning.cs.cmu.edu/pdfs/Hochreiter97_lstm.pdf S. Hochreiter و J. Schmidhuber بر اساس پیش فرض اجرای غیر سوراخ چشمی است. "حافظه کوتاه مدت طولانی". محاسبات عصبی ، 9 (8): 1735-1780 ، 1997. اجرای peephole بر اساس: https://research.google.com/pubs/archive/43905.pdf Hasim Sak ، Andrew Senior و Francoise Beaufays. "معماری شبکه عصبی تکراری حافظه کوتاه مدت برای مدل سازی صوتی در مقیاس بزرگ. INTERSPEECH ، 2014. اتصال ورودی و گیت فراموش (CIFG) بر اساس: http://arxiv.org/pdf/1503.04069.pdf Greff و همکاران . "LSTM: یک ادیسه فضای جستجو" عادی سازی لایه بر اساس: https://arxiv.org/pdf/1607.06450.pdf Ba و همکاران. "عادی سازی لایه"

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. input_to_input_weights : تنسور از هر نوع مقداری یا هیچ نوع
  3. input_to_forget_weights : تنسور از هر نوع مقداری
  4. input_to_cell_weights : تنسور از هر نوع مقداری
  5. input_to_output_weights : تنسور از هر نوع مقداری
  6. recurrent_to_input_weights : تنسور از هر نوع مقداری یا هیچ نوع
  7. recurrent_to_forget_weights : تنسور از هر نوع مقداری
  8. recurrent_to_cell_weights : تنسور از هر نوع مقداری
  9. recurrent_to_output_weights : تنسور از هر نوع مقداری
  10. cell_to_input_weights : تنسور از هر نوع مقداری یا هیچ نوع
  11. cell_to_forget_weights : تنسور از هر نوع مقداری یا هیچ نوع
  12. cell_to_output_weights : تنسور از هر نوع مقداری یا هیچ نوع
  13. input_gate_bias : تنسور از هر نوع مقداری یا هیچ نوع
  14. forget_gate_bias : تنسور از هر نوع مقداری
  15. cell_bias : تنسور از هر نوع مقداری
  16. output_gate_bias : تنسور از هر نوع مقداری
  17. projection_weights : تنسور از هر نوع مقداری یا هیچ نوع
  18. projection_bias : تنسور از هر نوع مقداری یا هیچ نوع
  19. input_activation_state : حالت دهنده
  20. input_cell_state : حالت دهنده
  21. input_layer_norm_coefficients : تنسور از هر نوع مقداری یا هیچ نوع
  22. forget_layer_norm_coefficients : تنسور از هر نوع مقداری یا هیچ نوع
  23. cell_layer_norm_coefficients : تنسور از هر نوع مقداری یا هیچ نوع
  24. output_layer_norm_coefficients : تنسور از هر نوع مقداری یا هیچ نوع

ویژگی های:

صفت نوع MLIR شرح
fused_activation_function StringAttr ویژگی enum فعال سازی ذوب شده
cell_clip FloatAttr ویژگی صفت 32 بیتی
proj_clip FloatAttr ویژگی صفت 32 بیتی
kernel_type StringAttr نوع هسته lstm ویژگی enum مورد FULL

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.leaky_relu (TFL :: LeakyReluOp)

اپراتور Leaky Relu

شرح:

عملگر Leaky ReLU از نظر عناصر x -> x> = 0؟ x: (آلفا * x)

کارخانه ها:

  1. input : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
alpha FloatAttr ویژگی صفت 32 بیتی

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.less_equal (TFL :: LessEqualOp)

عملگر Less_ برابر

شرح:

از نظر عناصر کمتر عمل_برابر.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.less (TFL :: LessOp)

کمتر اپراتور

شرح:

از نظر عناصر عملکرد کمتری دارد.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.local_response_normalization (TFL :: LocalResponseNormalizationOp)

عادی سازی پاسخ محلی.

شرح:

تانسور input 4-D به عنوان یک آرایه 3-D از بردارهای 1-D (در امتداد آخرین بعد) رفتار می شود و هر بردار به طور مستقل نرمال می شود. در یک بردار داده شده ، هر م componentلفه بر اساس مقدار ورودی و مربع شده ورودی در depth_radius . با جزئیات ،

sqr_sum[a, b, c, d] =
    sum(input[a, b, c, d - depth_radius : d + depth_radius + 1] ** 2)
output = input / (bias + alpha * sqr_sum) ** beta

برای جزئیات ، به طبقه بندی Krizhevsky و همکاران ، ImageNet با شبکه های عصبی کانولوشن عمیق مراجعه کنید (NIPS 2012) .

کارخانه ها:

  1. input : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
radius IntegerAttr ویژگی صحیح 32 بیتی
bias FloatAttr ویژگی صفت 32 بیتی
alpha FloatAttr ویژگی صفت 32 بیتی
beta FloatAttr ویژگی صفت 32 بیتی

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.log (TFL :: LogOp)

عملگر لگاریتم طبیعی

شرح:

عملکرد عناصر طبیعی لگاریتم را روی ورودی انجام می دهد.

کارخانه ها:

  1. x : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. y : تنسور از هر نوع مقداری

tfl.log_softmax (TFL :: LogSoftmaxOp)

وارد اپراتور softmax شوید

شرح:

فعال سازی log softmax با ورود عناصر را با فرمول زیر محاسبه می کند

ورودی - ورود به سیستم (کاهش_جمع (exp (ورودی) ، کم نور))

کارخانه ها:

  1. input : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.logical_and (TFL :: LogicalAndOp)

عملگر منطقی و

شرح:

منطقی و عملیاتی از نظر عناصر.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.logical_not (TFL :: LogicalNotOp)

اپراتور منطقی نیست

شرح:

از نظر عناصر عملیاتی نیست.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.logical_or (TFL :: LogicalOrOp)

عملگر منطقی یا

شرح:

منطقی یا عملیاتی منطقی.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.logistic (TFL :: LogisticOp)

اپراتور لجستیک

شرح:

Sigmoid ورودی از نظر عناصر را محاسبه می کند

کارخانه ها:

  1. x : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. y : تنسور از هر نوع مقداری

tfl.matrix_diag (TFL :: MatrixDiagOp)

Returns a tensor with the provided diagonal and everything else padded with zeros.

شرح:

با توجه به یک مورب ، یک سنسور با مورب و هر چیز دیگری که با صفر پر شده است باز می گرداند. فرض کنید مورب دارای ابعاد k باشد [I, J, K, ..., N] ، سپس خروجی یک تنسور از درجه k+1 با ابعاد [I, J, K, ..., N, N] که در آن: output[i, j, k, ..., m, n] = 1{m=n} * diagonal[i, j, k, ..., n].

کارخانه ها:

  1. diagonal : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.matrix_set_diag (TFL :: MatrixSetDiagOp)

Returns a batched matrix tensor with new batched diagonal values.

شرح:

با توجه به input و diagonal ، این عملیات یک تنسور با همان شکل و مقادیر input را باز می گرداند ، به جز مورب اصلی ماتریس های درونی. این مقادیر با diagonal بازنویسی می شوند.

کارخانه ها:

  1. input : تنسور مقادیر شناور 32 بیتی یا عدد صحیح 32 بیتی یا عدد صحیح 64 بیتی یا عدد صحیح 8 بیتی یا نوع QI8 یا نوع QI16 یا نوع QUI8 یا TFLite uint8 نوع یا TFLite quint8 مقادیر
  2. diagonal : تنسور مقادیر شناور 32 بیتی یا عدد صحیح 32 بیتی یا عدد صحیح 64 بیتی یا عدد صحیح 8 بیتی یا نوع QI8 یا نوع QI16 یا نوع QUI8 یا TFLite uint8 نوع یا TFLite quint8 مقادیر

ویژگی های:

نتایج:

  1. output : تنسور مقادیر شناور 32 بیتی یا عدد صحیح 32 بیتی یا عدد صحیح 64 بیتی یا عدد صحیح 8 بیتی یا نوع QI8 یا نوع QI16 یا نوع QUI8 یا TFLite uint8 نوع یا TFLite quint8 مقادیر

tfl.max_pool_2d (TFL :: MaxPool2DOp)

حداکثر استخر 2D op

شرح:

حداکثر استخر 2D را بر روی ورودی انجام می دهد.

ورودی ها: inputs[0] : مورد نیاز: سنسور ورودی

کارخانه ها:

  1. input : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
padding StringAttr ویژگی enum padding
stride_w IntegerAttr ویژگی صحیح 32 بیتی
stride_h IntegerAttr ویژگی صحیح 32 بیتی
filter_width IntegerAttr ویژگی صحیح 32 بیتی
filter_height IntegerAttr ویژگی صحیح 32 بیتی
fused_activation_function StringAttr ویژگی enum فعال سازی ذوب شده

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.max_pooling_with_argmax_2d (TFL :: MaxPoolingWithArgMax2DOp)

حداکثر استخر 2 بعدی با argmax op

شرح:

حداکثر هم اندیشی را بر روی ورودی و مقادیر حداکثر و شاخص ها انجام می دهد. هر شاخص یک شاخص مسطح در زیر آرایه "filter_w" x "filter_h" اندازه است توجه داشته باشید این یک عملکرد سفارشی است که در زمان اجرا استاندارد پشتیبانی نمی شود.

ورودی ها: inputs[0] : مورد نیاز: تانسور فعال سازی ورودی

کارخانه ها:

  1. input : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
padding StringAttr ویژگی enum padding
stride_w IntegerAttr ویژگی صحیح 32 بیتی
stride_h IntegerAttr ویژگی صحیح 32 بیتی
filter_w IntegerAttr ویژگی صحیح 32 بیتی
filter_h IntegerAttr ویژگی صحیح 32 بیتی

نتایج:

  1. value : تنسور از هر نوع مقداری
  2. indices : تنسور از هر نوع مقداری

tfl.max_unpooling_2d (TFL :: MaxUnpooling2DOp)

Max Unpool 2D

شرح:

حداکثر عملیات unpool را انجام می دهد. تا حدی این عمل معکوس حداکثر تجمع است: عناصر موجود در تانسور فعال سازی ورودی در موقعیت تعیین شده توسط شاخص های ورودی ذخیره می شوند. توجه داشته باشید این یک عملیات سفارشی است که در زمان اجرا استاندارد پشتیبانی نمی شود.

ورودی ها: inputs[0] : مورد نیاز: ورودی های تانسور فعال سازی inputs[1] : مورد نیاز: شاخص های ورودی

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. indices : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
padding StringAttr ویژگی enum padding
stride_w IntegerAttr ویژگی صحیح 32 بیتی
stride_h IntegerAttr ویژگی صحیح 32 بیتی
filter_w IntegerAttr ویژگی صحیح 32 بیتی
filter_h IntegerAttr ویژگی صحیح 32 بیتی

نتایج:

  1. outputs : تنسور از هر نوع مقداری

tfl.maximum (TFL :: MaximumOp)

اپراتور حداکثر

شرح:

حداکثر عملکرد از نظر عناصر.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. max : تنسور از هر نوع مقداری

tfl.mean (TFL :: MeanOp)

عملگر متوسط

شرح:

میانگین عناصر در طول ابعاد یک سنسور را محاسبه می کند. ورودی_تنسور را در امتداد ابعاد داده شده در محور کاهش می دهد. تا زمانی که keepdims درست نباشد ، درجه تنسور برای هر ورودی در محور 1 کاهش می یابد. اگر keepdims درست باشد ، ابعاد کاهش یافته با طول 1 حفظ می شوند.

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. axis : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
keep_dims BoolAttr ویژگی bool

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.minimum (TFL :: MinimumOp)

حداقل اپراتور

شرح:

حداقل عملکرد عناصر.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. min : تنسور از هر نوع مقداری

tfl.mirror_pad (TFL :: MirrorPadOp)

MirrorPad اپراتور یک سنسور با مقادیر آینه را لمس می کند.

شرح:

این عملیات مطابق با بالشتک هایی که تعیین می کنید ، ورودی ای با مقادیر آینه ای را پد می کند. paddings یک سنسور عدد صحیح با شکل [n، 2] است ، جایی که n رتبه ورودی است. برای هر بعد D از ورودی ، paddings [D، 0] نشان می دهد که چه مقدار باید قبل از محتوای ورودی در آن بعد اضافه شود ، و paddings [D ، 1] نشان می دهد که پس از محتوای ورودی در آن بعد ، چند مقدار اضافه شود.

هر دو بالشتک [D ، 0] و بالشتک [D، 1] نباید بیشتر از input.dim_size (D) (یا input.dim_size (D) - 1) در صورت درست بودن copy_border باشد (به ترتیب نادرست).

اندازه پر شده هر بعد D از خروجی:

بالشتک (D ، 0) + input.dim_size (D) + بالشتک (D ، 1)

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. pad : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
mode StringAttr Mirum pad ویژگی

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.mul (TFL :: MulOp)

عملگر ضرب

شرح:

عمل ضرب با عنصر.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
fused_activation_function StringAttr ویژگی enum فعال سازی ذوب شده

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.neg (TFL :: NegOp)

اپراتور منفی

شرح:

نفی عناصر ورودی را محاسبه می کند

کارخانه ها:

  1. x : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. y : تنسور از هر نوع مقداری

tfl.non_max_suppression_v4 (TFL :: NonMaxSuppressionV4Op)

با حرص زیر مجموعه جعبه های مرزی را به ترتیب نزولی امتیاز انتخاب می کند ،

شرح:

جعبه های هرس دور که دارای تقاطع بیش از حد اتحادیه (IOU) با جعبه های قبلا انتخاب شده همپوشانی دارند. جعبه های score_threshold با نمره کمتر از حد score_threshold حذف می شوند. جعبه های مرزی به عنوان [y1 ، x1 ، y2 ، x2] ارائه می شوند ، جایی که (y1 ، x1) و (y2 ، x2) مختصات هر جفت مورب گوشه جعبه هستند و مختصات را می توان به صورت عادی تهیه کرد (یعنی دراز کشیدن فاصله [0 ، 1]) یا مطلق. توجه داشته باشید که این الگوریتم در مورد مکانی که مبدا سیستم مختصات است و به طور کلی برای تحولات متعامد و ترجمه های سیستم مختصات ، غیرقانونی است ؛ بنابراین ترجمه یا بازتاب سیستم مختصات منجر به انتخاب همان جعبه ها توسط الگوریتم می شود. خروجی این عملیات مجموعه ای از نمایه های صحیح در مجموعه ورودی جعبه های مرزی نشان دهنده جعبه های انتخاب شده است. مختصات جعبه محدود مربوط به شاخص های انتخاب شده را می توان با استفاده از tf.gather operation بدست آورد. به عنوان مثال: selected_indices = tf.image.non_max_suppression_v2 (کادرها ، امتیازات ، حداکثر_بستر_سایز ، آستانه iou ، آستانه_نمایش) منتخب_بکسها = tf.gather (جعبه ها ، فهرست های برگزیده)

کارخانه ها:

  1. boxes : تنسور از هر نوع مقداری
  2. scores : تنسور از هر نوع مقداری
  3. max_output_size : تنسور از هر نوع مقداری
  4. iou_threshold : تنسور از هر نوع مقداری
  5. score_threshold : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. selected_indices : تانسور از هر مقدار نوع
  2. valid_outputs : تنسور از هر نوع مقداری

tfl.non_max_suppression_v5 (TFL :: NonMaxSuppressionV5Op)

با حرص زیر مجموعه جعبه های مرزی را به ترتیب نزولی امتیاز انتخاب می کند ،

شرح:

جعبه های هرس دور که دارای تقاطع بیش از حد اتحادیه (IOU) با جعبه های قبلا انتخاب شده همپوشانی دارند. جعبه های score_threshold با امتیاز کمتر از حد score_threshold حذف می شوند. جعبه های مرزی به عنوان [y1 ، x1 ، y2 ، x2] ارائه می شوند ، جایی که (y1 ، x1) و (y2 ، x2) مختصات هر جفت مورب گوشه جعبه هستند و مختصات را می توان به صورت عادی تهیه کرد (یعنی دراز کشیدن فاصله [0 ، 1]) یا مطلق. توجه داشته باشید که این الگوریتم در مورد مکانی که مبدا سیستم مختصات است و به طور کلی برای تحولات متعامد و ترجمه های سیستم مختصات ، غیرقانونی است ؛ بنابراین ترجمه یا بازتاب سیستم مختصات منجر به انتخاب همان جعبه ها توسط الگوریتم می شود. خروجی این عملیات مجموعه ای از نمایه سازی اعداد صحیح در مجموعه ورودی جعبه های مرزی نشان دهنده جعبه های انتخاب شده است. مختصات جعبه محدود مربوط به شاخص های انتخاب شده را می توان با استفاده از tf.gather operation بدست آورد. به عنوان مثال: selected_indices = tf.image.non_max_suppression_v2 (کادرها ، امتیازات ، حداکثر_بستر_سایز ، iou_threshold ، نمره_آستانه) برگزیده_باکس ها = tf.gather (جعبه ها ، منتخب_ اندیس ها) این گزینه همچنین از حالت Soft-NMS (با وزن دهی گوسی) پشتیبانی می کند ، https://arxiv.org/abs/1704.04503) که در آن جعبه ها به جای اینکه مستقیماً هرس شوند ، امتیاز سایر جعبه های همپوشان را کاهش می دهند. برای فعال کردن این حالت Soft-NMS ، پارامتر soft_nms_sigma را بزرگتر از 0 قرار دهید.

کارخانه ها:

  1. boxes : تنسور از هر نوع مقداری
  2. scores : تنسور از هر نوع مقداری
  3. max_output_size : تنسور از هر نوع مقداری
  4. iou_threshold : تنسور از هر نوع مقداری
  5. score_threshold : تنسور از هر نوع مقداری
  6. soft_nms_sigma : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. selected_indices : تانسور از هر مقدار نوع
  2. selected_scores : تنسور از هر نوع مقداری
  3. valid_outputs : تنسور از هر نوع مقداری

tfl.not_equal (TFL :: NotEqualOp)

اپراتور نابرابر

شرح:

از نظر عناصر عملیاتی غیر برابر است.

کارخانه ها:

  1. lhs : تنسور از هر نوع مقداری
  2. rhs : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.NumericVerify (TFL :: NumericVerifyOp)

اعداد دو عملوند را تأیید می کند

شرح:

گزینه NumericVerify یک عملیات رفع اشکال برای تأیید عددی دو فعال سازی است. این یک عملیات سفارشی در TFLite است.

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. ref : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
tolerance FloatAttr ویژگی صفت 32 بیتی

نتایج:

tfl.one_hot (TFL :: OneHotOp)

اپراتور OneHot

شرح:

یک تانسور یک داغ برمی گرداند. مکانهایی که توسط شاخص ها در indices می on_value ، مقدار را on_value ، در حالی که تمام مکان های دیگر از off_value ارزش برخوردار می off_value .

اگر indices ورودی رتبه N ، خروجی دارای درجه N+1 ، محور جدید در axis بعد ایجاد axis (پیش فرض: محور جدید در انتها ضمیمه می شود).

کارخانه ها:

  1. indices : تنسور از هر نوع مقداری
  2. depth : تنسور از هر نوع مقداری
  3. on_value : تنسور از هر نوع مقداری
  4. off_value : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
axis IntegerAttr ویژگی صحیح 32 بیتی

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.prelu (TFL :: PReluOp)

عملگر Relu پارامتر شده

شرح:

عملگر Relu پارامتری x -> x> = 0؟ x: (alpha * x) که در آن آلفا یک کشش قابل آموزش است. آلفا باید یک رتبه کمتر از ورودی داشته باشد زیرا بعد دسته ای ندارد و ابعاد دیگر باید همان اندازه ورودی یا اندازه 1 باشد ، جایی که در حالت دوم پخش می شود.

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. alpha : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.pack (TFL :: PackOp)

لیستی از سنسورها را در یک بعد در یک تنسور قرار می دهد

شرح:

لیستی از values_count R را در یک values_count یک values_count (R+1) .

با بسته بندی آنها در امتداد axis ، values_count values در values به values_count با رتبه یک بالاتر از هر تنسور در values بسته بندی می کند.

با توجه به لیستی از سنسورهای شکل (A, B, C) ؛

اگر axis == 0 باشد ، تانسور output شکل (N, A, B, C) خواهد داشت. اگر axis == 1 باشد ، تانسور output شکل (A, N, B, C) خواهد داشت. و غیره.

مثلا:

# 'x' is [1, 4]
# 'y' is [2, 5]
# 'z' is [3, 6]
pack([x, y, z]) => [[1, 4], [2, 5], [3, 6]]  # Pack along first dim.
pack([x, y, z], axis=1) => [[1, 2, 3], [4, 5, 6]]

این در مقابل unpack .

کارخانه ها:

  1. values : تنسور از هر نوع مقداری

ویژگی های:

صفت نوع MLIR شرح
values_count IntegerAttr ویژگی صحیح 32 بیتی
axis IntegerAttr ویژگی صحیح 32 بیتی

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.pad (TFL :: PadOp)

عملگر بالشتک

شرح:

این عملیات زنان input با صفر با توجه به paddings شما مشخص است. paddings یک سنسور عدد صحیح با شکل [Dn, 2] ، جایی که n رتبه input . برای هر بعد D از input ، paddings[D, 0] نشان می دهد که چند صفر قبل از محتوای input در آن بعد اضافه شود ، و paddings[D, 1] نشان می دهد که چند صفر بعد از محتوای input در آن بعد اضافه شود.

اندازه پر شده هر بعد D از خروجی:

paddings(D, 0) + input.dim_size(D) + paddings(D, 1)

مثلا:

# 't' is [[1, 1], [2, 2]]
# 'paddings' is [[1, 1], [2, 2]]
# rank of 't' is 2
pad(t, paddings) ==> [[0, 0, 0, 0, 0, 0]
                      [0, 0, 1, 1, 0, 0]
                      [0, 0, 2, 2, 0, 0]
                      [0, 0, 0, 0, 0, 0]]

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. padding : تنسور از هر نوع مقداری

ویژگی های:

نتایج:

  1. output : تنسور از هر نوع مقداری

tfl.padv2 (TFL :: PadV2Op)

Padding operator v2

شرح:

این عملیات مطابق با بالشتک ها و paddings constant_values که مشخص می کنید ، input را پد می کند. paddings یک سنسور عدد صحیح با شکل [Dn, 2] ، جایی که n رتبه input . برای هر بعد D از input ، paddings[D, 0] نشان می دهد که چند صفر قبل از محتوای input در آن بعد اضافه شود ، و paddings[D, 1] نشان می دهد که چند صفر بعد از محتوای input در آن بعد اضافه شود. constant_values یک سنسور اسکالر از همان نوع input که مقداری را برای استفاده از input بالشتک نشان می دهد.

اندازه پر شده هر بعد D از خروجی:

paddings(D, 0) + input.dim_size(D) + paddings(D, 1)

مثلا:

# 't' is [[1, 1], [2, 2]]
# 'paddings' is [[1, 1], [2, 2]]
# rank of 't' is 2
pad(t, paddings) ==> [[0, 0, 0, 0, 0, 0]
                      [0, 0, 1, 1, 0, 0]
                      [0, 0, 2, 2, 0, 0]
                      [0, 0, 0, 0, 0, 0]]

کارخانه ها:

  1. input : تنسور از هر نوع مقداری
  2. padding : tensor of any type values
  3. constant_values : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.pow (TFL::PowOp)

Power operator

Description:

Element-wise power operation.

Operands:

  1. lhs : tensor of any type values
  2. rhs : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.pseudo_qconst (TFL::QConstOp)

Quantized constant pseudo op

Description:

Represents a quantized constant value in TensorFlow Lite dialect. This is not an actual operation and it will be lowered to buffer instead. The quantization parameters are stored as a type attribute in this constant.

Operands:

Attributes:

Attribute MLIR Type Description
qtype TypeAttr Tensor type attribute attribute
value ElementsAttr constant vector/tensor attribute attribute

Results:

  1. output : tensor of any type values

tfl.quantize (TFL::QuantizeOp)

Quantize operator

Description:

Converts floating point tensors to quantized integer tensors according to the quantization parameters defined in the type attribute.

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
qtype TypeAttr Tensor type attribute attribute

Results:

  1. output : tensor of any type values

tfl.range (TFL::RangeOp)

Range operator

Description:

Returns a 1D tensor defined by a sequence from start to limit with a given delta .

Operands:

  1. start : tensor of any type values
  2. limit : tensor of any type values
  3. delta : tensor of any type values

Attributes:

Results:

  1. result : tensor of any type values

tfl.rank (TFL::RankOp)

Rank operator.

Description:

Returns the rank of a tensor.

Operands:

  1. input : tensor of any type values

Attributes:

Results:

  1. output : tensor of any integer type

tfl.reduce_any (TFL::ReduceAnyOp)

Computes the "logical or" of elements across dimensions of a tensor.

Description:

Reduces input along the dimensions given in axis . Unless keep_dims is true, the rank of the tensor is reduced by 1 for each entry in axis . If keep_dims is true, the reduced dimensions are retained with length 1.

Operands:

  1. input : tensor of any type values
  2. reduction_indices : tensor of any type values

Attributes:

Attribute MLIR Type Description
keep_dims BoolAttr bool attribute attribute

Results:

  1. output : tensor of any type values

tfl.reduce_max (TFL::ReduceMaxOp)

Max-reduction operator

Description:

Computes the max reduction along the specified axes

Operands:

  1. input : tensor of any type values
  2. axes : tensor of any type values

Attributes:

Attribute MLIR Type Description
keep_dims BoolAttr bool attribute attribute

Results:

  1. «unnamed»: tensor of any type values

tfl.reduce_min (TFL::ReduceMinOp)

Min-reduction operator

Description:

Computes the min reduction along the specified axes

Operands:

  1. input : tensor of any type values
  2. axes : tensor of any type values

Attributes:

Attribute MLIR Type Description
keep_dims BoolAttr bool attribute attribute

Results:

  1. «unnamed»: tensor of any type values

tfl.reduce_prod (TFL::ReduceProdOp)

Prod-reduction operator

Description:

Computes the product along the specified axes

Operands:

  1. input : tensor of any type values
  2. axes : tensor of any type values

Attributes:

Attribute MLIR Type Description
keep_dims BoolAttr bool attribute attribute

Results:

  1. «unnamed»: tensor of any type values

tfl.relu_n1_to_1 (TFL::Relu1Op)

Relu1 operator

Description:

Element-wise Relu1 operator x -> max(-1, min(1, x))

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.relu6 (TFL::Relu6Op)

Relu6 operator

Description:

Element-wise Relu6 operator x -> max(0, min(6, x))

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.relu (TFL::ReluOp)

Relu operator

Description:

Element-wise Relu operator x -> max(0, x)

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.reshape (TFL::ReshapeOp)

Reshape operator

Description:

Produces a tensor with the same values but different static shape defined by the output type.

Operands:

  1. input : tensor of any type values
  2. shape : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.resize_bilinear (TFL::ResizeBilinearOp)

ResizeBilinear Op

Description:

Resize images to size using bilinear interpolation.

Operands:

  1. input : tensor of any type values
  2. size : tensor of any type values

Attributes:

Attribute MLIR Type Description
align_corners BoolAttr bool attribute attribute
half_pixel_centers BoolAttr bool attribute attribute

Results:

  1. output : tensor of any type values

tfl.resize_nearest_neighbor (TFL::ResizeNearestNeighborOp)

ResizeNearestNeighbor Op

Description:

Resize images to size using nearest neighbor interpolation.

Operands:

  1. input : tensor of any type values
  2. size : tensor of any type values

Attributes:

Attribute MLIR Type Description
align_corners BoolAttr bool attribute attribute

Results:

  1. output : tensor of any type values

tfl.reverse_sequence (TFL::ReverseSequenceOp)

Reverses variable length slices.

Description:

This op first slices input along the dimension batch_dim , and for each slice i , reverses the first seq_lengths[i] elements along the dimension seq_dim .

The elements of seq_lengths must obey seq_lengths[i] <= input.dims[seq_dim] , and seq_lengths must be a vector of length input.dims[batch_dim] .

The output slice i along dimension batch_dim is then given by input slice i , with the first seq_lengths[i] slices along dimension seq_dim reversed.

Operands:

  1. input : tensor of any type values
  2. seq_lengths : tensor of any type values

Attributes:

Attribute MLIR Type Description
seq_dim IntegerAttr 32-bit integer attribute attribute
batch_dim IntegerAttr 32-bit integer attribute attribute

Results:

  1. output : tensor of any type values

tfl.reverse_v2 (TFL::ReverseV2Op)

ReverseV2 Operator

Description:

Reverses specific dimensions of a tensor.

Given a tensor, and a int32/int64 tensor axis representing the set of dimensions of tensor to reverse. This operation reverses each dimension i for which there exists j st axis[j] == i.

Args: tensor: A Tensor. Must be one of the following types: uint8, int16, int32, int64, float32, bool Up to 8-D.

axis: A Tensor. Must be one of the following types: int32, int64. with only 1 element which is the axis index. TODO: Add support for multiple elements.

Operands:

  1. input : tensor of any type values
  2. axis : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.round (TFL::RoundOp)

Round operator

Description:

Rounds the values of a tensor to the nearest integer, element-wise.

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.rsqrt (TFL::RsqrtOp)

Reciprocal of square root operator

Description:

Computes element-wise reverse square root of input

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.svdf (TFL::SVDFOp)

Single value decomposition filter operator

Description:

The SVDF op is a decomposition of a densely connected op into low rank filters. For details: https://research.google.com/pubs/pub43813.html https://arxiv.org/abs/1812.02802

Operands:

  1. input : tensor of any type values
  2. feature_weights : tensor of any type values
  3. time_weights : tensor of any type values
  4. input_gate_bias : tensor of any type values or none type
  5. activation_state : stateful tensor

Attributes:

Attribute MLIR Type Description
rank IntegerAttr 32-bit integer attribute attribute
fused_activation_function StringAttr fused activation enum attribute

Results:

  1. output : tensor of any type values

tfl.segment_sum (TFL::SegmentSumOp)

SegmentSum operator

Description:

Computes the sum along segments of a tensor.

Operands:

  1. data : tensor of any type values
  2. segment_ids : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.select (TFL::SelectOp)

Select operator

Description:

Select values of 'x' if the corresponding value of 'condition' is true or the value of 'y' if false. There are valid condition input sizes:

  1. Either the same shape (in which case the select is elementwise), or
  2. condition must be Rank 1 and match over the first dimension.

Operands:

  1. condition : tensor of any type values
  2. x : tensor of any type values
  3. y : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.select_v2 (TFL::SelectV2Op)

SelectV2 operator

Description:

Select values of 'x' if the corresponding value of 'condition' is true or the value of 'y' if false. There are valid condition input sizes:

  1. Either the same shape (in which case the select is elementwise), or
  2. Broadcastable shapes between 'condition', 'x' and 'y'.

Operands:

  1. condition : tensor of any type values
  2. x : tensor of any type values
  3. y : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.shape (TFL::ShapeOp)

Shape operator

Description:

Returns the shape of a tensor.

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
out_type Attribute derived attribute attribute

Results:

  1. output : tensor of any type values

tfl.sin (TFL::SinOp)

Sine operator

Description:

Computes element-wise Sine of input

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.slice (TFL::SliceOp)

Return a slice from 'input'.

Description:

The output tensor is a tensor with dimensions described by 'size' whose values are extracted from 'input' starting at the offsets in 'begin'.

begin is zero-based; size is one-based. If size[i] is -1, all remaining elements in dimension i are included in the slice. In other words, this is equivalent to setting: size[i] = input.dim_size(i) - begin[i]

Requirements : 0 <= begin[i] <= begin[i] + size[i] <= Di for i in [0, n)

Operands:

  1. input : tensor of any type values
  2. begin : tensor of any type values
  3. size : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.softmax (TFL::SoftmaxOp)

Softmax operator

Description:

Computes element-wise softmax activations with the following formula

exp(input) / tf.reduce_sum(exp(input * beta), dim)

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
beta FloatAttr 32-bit float attribute attribute

Results:

  1. output : tensor of any type values

tfl.space_to_batch_nd (TFL::SpaceToBatchNdOp)

SpaceToBatchNd operator

Description:

This operation reshapes space dimensions into the "batch" dimension 0

Operands:

  1. input : tensor of any type values
  2. block_shape : tensor of any type values
  3. paddings : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.space_to_depth (TFL::SpaceToDepthOp)

SpaceToDepth operator

Description:

Rearranges blocks of spatial data, into depth. More specifically, this op outputs a copy of the input tensor where values from the height and width dimensions are moved to the depth dimension. block_size indicates the input block size.

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
block_size IntegerAttr 32-bit integer attribute attribute

Results:

  1. output : tensor of any type values

tfl.pseudo_sparse_const (TFL::SparseConstOp)

Sparse constant pseudo op.

Description:

Represents a sparse constant value in TensorFlow Lite dialect. This is not an actual operation and it will be lowered to buffer instead.

Operands:

Attributes:

Attribute MLIR Type Description
value ElementsAttr constant vector/tensor attribute attribute
s_param TFL::SparsityParameterAttr Sparsity parameter. attribute

Results:

  1. output : tensor of any type values

tfl.pseudo_sparse_qconst (TFL::SparseQConstOp)

Sparse quantized constant pseudo op

Description:

Represents a sparse quantized constant value in TensorFlow Lite dialect. This is not an actual operation and it will be lowered to buffer instead. The quantization parameters are stored as a type attribute in this constant.

Operands:

Attributes:

Attribute MLIR Type Description
qtype TypeAttr Tensor type attribute attribute
value ElementsAttr constant vector/tensor attribute attribute
s_param TFL::SparsityParameterAttr Sparsity parameter. attribute

Results:

  1. output : tensor of any type values

tfl.sparse_to_dense (TFL::SparseToDenseOp)

Converts a sparse representation into a dense tensor.

Description:

Builds an array dense with shape output_shape such that

# If sparse_indices is scalar
dense[i] = (i == sparse_indices ? sparse_values : default_value)

# If sparse_indices is a vector, then for each i
dense[sparse_indices[i]] = sparse_values[i]

# If sparse_indices is an n by d matrix, then for each i in [0, n)
dense[sparse_indices[i][0], ..., sparse_indices[i][d-1]] = sparse_values[i]

All other values in dense are set to default_value . If sparse_values is a scalar, all sparse indices are set to this single value.

Indices should be sorted in lexicographic order, and indices must not contain any repeats. If validate_indices is true, these properties are checked during execution.

Operands:

  1. sparse_indices : tensor of any type values
  2. output_shape : tensor of any type values
  3. sparse_values : tensor of any type values
  4. default_value : tensor of any type values

Attributes:

Results:

  1. dense : tensor of any type values

tfl.split (TFL::SplitOp)

Splits a tensor into num_split tensors along one dimension.

Description:

Splits the value tensor along split_dim into a number of sub-tensors with same shape as the original one, except for split_dim . Same as tf.Split.

Operands:

  1. split_dim : tensor of any type values
  2. value : tensor of any type values

Attributes:

Attribute MLIR Type Description
num_splits IntegerAttr positive 32-bit integer attribute attribute

Results:

  1. outputs : tensor of any type values

tfl.split_v (TFL::SplitVOp)

Splits a tensor into num_split tensors along one dimension.

Description:

Splits the value tensor along split_dim into a number of sub-tensors with same shape as the original one, except for split_dim . The grouping of the resultant sub-tensors is decided by size-splits . Same as tf.SplitV.

Operands:

  1. value : tensor of any type values
  2. size_splits : 1D tensor of 32-bit integer values
  3. split_dim : 0D tensor of 32-bit integer values

Attributes:

Attribute MLIR Type Description
num_splits IntegerAttr positive 32-bit integer attribute attribute

Results:

  1. outputs : tensor of any type values

tfl.sqrt (TFL::SqrtOp)

Square root operator

Description:

Computes element-wise Square root of input

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.square (TFL::SquareOp)

Square operator

Description:

Computes element-wise Square of input

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.squared_difference (TFL::SquaredDifferenceOp)

Squared difference operator

Description:

Element-wise squared difference operation.

Operands:

  1. lhs : tensor of any type values
  2. rhs : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.squeeze (TFL::SqueezeOp)

Removes dimensions of size 1 from the shape of a tensor.

Description:

Given a tensor input , this operation returns a tensor of the same type with all dimensions of size 1 removed. If you don't want to remove all size 1 dimensions, you can remove specific size 1 dimensions by specifying axis .

For example:

# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
shape(squeeze(t)) ==> [2, 3]

Or, to remove specific size 1 dimensions:

# 't' is a tensor of shape [1, 2, 1, 3, 1, 1]
shape(squeeze(t, [2, 4])) ==> [1, 2, 3, 1]

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
squeeze_dims ArrayAttr 64-bit integer array attribute attribute

Results:

  1. output : tensor of any type values

tfl.strided_slice (TFL::StridedSliceOp)

StridedSlice Op

Description:

Return a strided slice from input .

Operands:

  1. input : tensor of any type values
  2. begin : tensor of any type values
  3. end : tensor of any type values
  4. strides : tensor of any type values

Attributes:

Attribute MLIR Type Description
begin_mask IntegerAttr 32-bit integer attribute attribute
end_mask IntegerAttr 32-bit integer attribute attribute
ellipsis_mask IntegerAttr 32-bit integer attribute attribute
new_axis_mask IntegerAttr 32-bit integer attribute attribute
shrink_axis_mask IntegerAttr 32-bit integer attribute attribute

Results:

  1. output : tensor of any type values

tfl.sub (TFL::SubOp)

Subtraction operator

Description:

Element-wise subtraction operation.

Operands:

  1. lhs : tensor of any type values
  2. rhs : tensor of any type values

Attributes:

Attribute MLIR Type Description
fused_activation_function StringAttr fused activation enum attribute

Results:

  1. output : tensor of any type values

tfl.sum (TFL::SumOp)

Sum operator

Description:

Computes the sum reduction along the specified axes

Operands:

  1. input : tensor of any type values
  2. axes : tensor of any type values

Attributes:

Attribute MLIR Type Description
keep_dims BoolAttr bool attribute attribute

Results:

  1. «unnamed»: tensor of any type values

tfl.tanh (TFL::TanhOp)

Hyperbolic tangent operator

Description:

Computes element-wise Hyperbolic tangent of input

Operands:

  1. x : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.tile (TFL::TileOp)

Tile operator.

Description:

Constructs a tensor by tiling a given tensor.

This operation creates a new tensor by replicating input multiples times. The output tensor's i'th dimension has input.dims(i) * multiples[i] elements, and the values of input are replicated multiples[i] times along the 'i'th dimension. For example, tiling [abcd] by [2] produces [abcdabcd].

Operands:

  1. input : tensor of any type values
  2. multiples : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values

tfl.topk_v2 (TFL::TopKV2Op)

TopK operator

Description:

Returns the top k largest element along each last dimensional slice of input and the indices of values within the last dimension of the input tensor.

Operands:

  1. input : tensor of any type values
  2. k : tensor of any type values

Attributes:

Results:

  1. values : tensor of any type values
  2. indices : tensor of any type values

tfl.transpose_conv (TFL::TransposeConvOp)

Transpose convolution operator

Description:

Performs transpose convolution operation on input.

Operands:

  1. output_shape : 1D tensor of any type values
  2. weights : tensor of any type values
  3. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
padding StringAttr padding enum attribute
stride_h IntegerAttr 32-bit integer attribute attribute
stride_w IntegerAttr 32-bit integer attribute attribute

Results:

  1. output : tensor of any type values

tfl.transpose (TFL::TransposeOp)

Transpose operator

Description:

Returns the Transpose of x

Operands:

  1. x : tensor of any type values
  2. perm : tensor of any type values

Attributes:

Results:

  1. y : tensor of any type values

tfl.unidirectional_sequence_lstm (TFL::UnidirectionalSequenceLSTMOp)

Unidirectional sequence lstm operator

Description:

A recurrent neural network specified by an LSTM cell. This Op supports unrolling the input along the time or batch dimensions, and implements the following operation for each element in the sequence s = 1...sequence_length: outputs[s] = state = activation(LSTMOp(inputs[s]))

where LSTMOp is LSTM TF Lite Op and the “activation” is the function passed as the “fused_activation_function” argument (if not “NONE”).

Operands:

  1. input : tensor of any type values
  2. input_to_input_weights : tensor of any type values or none type
  3. input_to_forget_weights : tensor of any type values
  4. input_to_cell_weights : tensor of any type values
  5. input_to_output_weights : tensor of any type values
  6. recurrent_to_input_weights : tensor of any type values or none type
  7. recurrent_to_forget_weights : tensor of any type values
  8. recurrent_to_cell_weights : tensor of any type values
  9. recurrent_to_output_weights : tensor of any type values
  10. cell_to_input_weights : tensor of any type values or none type
  11. cell_to_forget_weights : tensor of any type values or none type
  12. cell_to_output_weights : tensor of any type values or none type
  13. input_gate_bias : tensor of any type values or none type
  14. forget_gate_bias : tensor of any type values
  15. cell_bias : tensor of any type values
  16. output_gate_bias : tensor of any type values
  17. projection_weights : tensor of any type values or none type
  18. projection_bias : tensor of any type values or none type
  19. input_activation_state : stateful tensor
  20. input_cell_state : stateful tensor
  21. input_layer_norm_coefficients : tensor of any type values or none type
  22. forget_layer_norm_coefficients : tensor of any type values or none type
  23. cell_layer_norm_coefficients : tensor of any type values or none type
  24. output_layer_norm_coefficients : tensor of any type values or none type

Attributes:

Attribute MLIR Type Description
fused_activation_function StringAttr fused activation enum attribute
cell_clip FloatAttr 32-bit float attribute attribute
proj_clip FloatAttr 32-bit float attribute attribute
time_major BoolAttr bool attribute attribute

Results:

  1. output : tensor of any type values

tfl.unidirectional_sequence_rnn (TFL::UnidirectionalSequenceRNNOp)

Unidirectional sequence rnn operator

Description:

A recurrent neural network specified by an RNN cell. This Op takes in input in a format {batch_size, seq_len, input_size} or {seq_len, batch_size, input_size} if it's time-majored.

It implements the following operation for each element in the sequence s = 1...sequence_length: outputs[s] = state = activation(RNNOp(inputs[s]))

where RNNOp is RNNOp TF Lite Op and the “activation” is the function passed as the “fused_activation_function” argument (if not “NONE”).

Operands:

  1. input : tensor of any type values
  2. input_to_input_weights : tensor of any type values
  3. recurrent_to_input_weights : tensor of any type values
  4. input_gate_bias : tensor of any type values
  5. hidden_state : stateful tensor

Attributes:

Attribute MLIR Type Description
time_major BoolAttr bool attribute attribute
fused_activation_function StringAttr fused activation enum attribute

Results:

  1. output : tensor of any type values

tfl.unique (TFL::UniqueOp)

Unique Op.

Description:

This operation returns a tensor y containing all of the unique elements of x sorted in the same order that they occur in x . This operation also returns a tensor idx the same size as x that contains the index of each value of x in the unique output y . In other words:

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
idx_out_type Attribute derived attribute attribute

Results:

  1. output : tensor of any type values
  2. idx : tensor of any type values

tfl.unpack (TFL::UnpackOp)

Unpacks a tensor along a dimension into multiple tensors

Description:

Unpacks a given dimension of a rank- R tensor into num rank- (R-1) tensors.

Unpacks num tensors from value by chipping it along the axis dimension. For example, given a tensor of shape (A, B, C, D) ;

If axis == 0 then the i'th tensor in output is the slice value[i, :, :, :] and each tensor in output will have shape (B, C, D) . (Note that the dimension unpacked along is gone, unlike split ).

If axis == 1 then the i'th tensor in output is the slice value[:, i, :, :] and each tensor in output will have shape (A, C, D) . Etc.

This is the opposite of pack .

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
num IntegerAttr 32-bit integer attribute attribute
axis IntegerAttr 32-bit integer attribute attribute

Results:

  1. outputs : tensor of any type values

tfl.where (TFL::WhereOp)

Returns locations of nonzero / true values in a tensor.

Description:

This operation returns the coordinates of true elements in condition . The coordinates are returned in a 2-D tensor where the first dimension (rows) represents the number of true elements, and the second dimension (columns) represents the coordinates of the true elements. Keep in mind, the shape of the output tensor can vary depending on how many true values there are in condition . Indices are output in row-major order.

Operands:

  1. input : tensor of any type values

Attributes:

Results:

  1. index : tensor of any type values

tfl.while (TFL::WhileOp)

While loop

Description:

output = input; while (cond(output)) { output = body(output) }

While loop where all values are passes through arguments with implicit capture.

input: A list of input tensors whose types are T. output: A list of output tensors whose types are T. cond: A region takes 'input' and returns a boolean scalar tensor. body: A region that takes a list of tensors and returns another list of tensors. Both lists have the same types.

Operands:

  1. input : tensor of any type values

Attributes:

Attribute MLIR Type Description
is_stateless BoolAttr bool attribute attribute

Results:

  1. output : tensor of any type values

tfl.yield (TFL::YieldOp)

Yield operation

Description:

The "yield" operation represents a return operation within the conditional and body of structured control flow (eg, while). The operation takes variable number of operands and produces no results. The operand number and types must match the signature of the region that contains the operation.

Operands:

  1. operands : any type

Attributes:

Results:

tfl.zeros_like (TFL::ZerosLikeOp)

ZerosLike operator

Description:

Returns a tensor of zeros with the same shape and type as the input tensor.

Operands:

  1. input : tensor of any type values

Attributes:

Results:

  1. output : tensor of any type values