تدفق التوتر:: العمليات:: ParallelDynamicStitch
#include <data_flow_ops.h>
قم بتشذير القيم من موترات data
في موتر واحد.
ملخص
يبني موتر مدمج من هذا القبيل
merged[indices[m][i, ..., j], ...] = data[m][i, ..., j, ...]
على سبيل المثال، إذا كان كل indices[m]
عدديًا أو متجهًا، فلدينا
# Scalar indices: merged[indices[m], ...] = data[m][...]
# Vector indices: merged[indices[m][i], ...] = data[m][i, ...]
يجب أن يبدأ كل data[i].shape
indices[i].shape
، ويجب أن تكون بقية data[i].shape
ثابتة wrt i
. أي أنه يجب أن يكون لدينا data[i].shape = indices[i].shape + constant
. ومن حيث هذا constant
، فإن شكل الإخراج هو
merged.shape = [max(indices)] + constant
قد يتم دمج القيم بالتوازي، لذلك إذا ظهر فهرس في كل من indices[m][i]
و indices[n][j]
، فقد تكون النتيجة غير صالحة. وهذا يختلف عن عامل التشغيل DynamicStitch العادي الذي يحدد السلوك في هذه الحالة.
على سبيل المثال:
indices[0] = 6 indices[1] = [4, 1] indices[2] = [[5, 2], [0, 3]] data[0] = [61, 62] data[1] = [[41, 42], [11, 12]] data[2] = [[[51, 52], [21, 22]], [[1, 2], [31, 32]]] merged = [[1, 2], [11, 12], [21, 22], [31, 32], [41, 42], [51, 52], [61, 62]]
يمكن استخدام هذه الطريقة لدمج الأقسام التي تم إنشاؤها بواسطة dynamic_partition
كما هو موضح في المثال التالي:
# Apply function (increments x_i) on elements for which a certain condition # apply (x_i != -1 in this example). x=tf.constant([0.1, -1., 5.2, 4.3, -1., 7.4]) condition_mask=tf.not_equal(x,tf.constant(-1.)) partitioned_data = tf.dynamic_partition( x, tf.cast(condition_mask, tf.int32) , 2) partitioned_data[1] = partitioned_data[1] + 1.0 condition_indices = tf.dynamic_partition( tf.range(tf.shape(x)[0]), tf.cast(condition_mask, tf.int32) , 2) x = tf.dynamic_stitch(condition_indices, partitioned_data) # Here x=[1.1, -1., 6.2, 5.3, -1, 8.4], the -1. values remain # unchanged.
الحجج:
- النطاق: كائن النطاق
العوائد:
-
Output
: الموتر المدمج.
البنائين والمدمرين | |
---|---|
ParallelDynamicStitch (const :: tensorflow::Scope & scope, :: tensorflow::InputList indices, :: tensorflow::InputList data) |
الصفات العامة | |
---|---|
merged | |
operation |
الوظائف العامة | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
الصفات العامة
اندمجت
::tensorflow::Output merged
عملية
Operation operation
الوظائف العامة
ParallelDynamicStitch
ParallelDynamicStitch( const ::tensorflow::Scope & scope, ::tensorflow::InputList indices, ::tensorflow::InputList data )
العقدة
::tensorflow::Node * node() const
المشغل::tensorflow::الإدخال
operator::tensorflow::Input() const
المشغل::tensorflow::الإخراج
operator::tensorflow::Output() const
تدفق التوتر:: العمليات:: ParallelDynamicStitch
#include <data_flow_ops.h>
قم بتشذير القيم من موترات data
في موتر واحد.
ملخص
يبني موتر مدمج من هذا القبيل
merged[indices[m][i, ..., j], ...] = data[m][i, ..., j, ...]
على سبيل المثال، إذا كان كل indices[m]
عدديًا أو متجهًا، فلدينا
# Scalar indices: merged[indices[m], ...] = data[m][...]
# Vector indices: merged[indices[m][i], ...] = data[m][i, ...]
يجب أن يبدأ كل data[i].shape
indices[i].shape
، ويجب أن تكون بقية data[i].shape
ثابتة wrt i
. أي أنه يجب أن يكون لدينا data[i].shape = indices[i].shape + constant
. ومن حيث هذا constant
، فإن شكل الإخراج هو
merged.shape = [max(indices)] + constant
قد يتم دمج القيم بالتوازي، لذلك إذا ظهر فهرس في كل من indices[m][i]
و indices[n][j]
، فقد تكون النتيجة غير صالحة. وهذا يختلف عن عامل التشغيل DynamicStitch العادي الذي يحدد السلوك في هذه الحالة.
على سبيل المثال:
indices[0] = 6 indices[1] = [4, 1] indices[2] = [[5, 2], [0, 3]] data[0] = [61, 62] data[1] = [[41, 42], [11, 12]] data[2] = [[[51, 52], [21, 22]], [[1, 2], [31, 32]]] merged = [[1, 2], [11, 12], [21, 22], [31, 32], [41, 42], [51, 52], [61, 62]]
يمكن استخدام هذه الطريقة لدمج الأقسام التي تم إنشاؤها بواسطة dynamic_partition
كما هو موضح في المثال التالي:
# Apply function (increments x_i) on elements for which a certain condition # apply (x_i != -1 in this example). x=tf.constant([0.1, -1., 5.2, 4.3, -1., 7.4]) condition_mask=tf.not_equal(x,tf.constant(-1.)) partitioned_data = tf.dynamic_partition( x, tf.cast(condition_mask, tf.int32) , 2) partitioned_data[1] = partitioned_data[1] + 1.0 condition_indices = tf.dynamic_partition( tf.range(tf.shape(x)[0]), tf.cast(condition_mask, tf.int32) , 2) x = tf.dynamic_stitch(condition_indices, partitioned_data) # Here x=[1.1, -1., 6.2, 5.3, -1, 8.4], the -1. values remain # unchanged.
الحجج:
- النطاق: كائن النطاق
العوائد:
-
Output
: الموتر المدمج.
البنائين والمدمرين | |
---|---|
ParallelDynamicStitch (const :: tensorflow::Scope & scope, :: tensorflow::InputList indices, :: tensorflow::InputList data) |
الصفات العامة | |
---|---|
merged | |
operation |
الوظائف العامة | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
الصفات العامة
اندمجت
::tensorflow::Output merged
عملية
Operation operation
الوظائف العامة
ParallelDynamicStitch
ParallelDynamicStitch( const ::tensorflow::Scope & scope, ::tensorflow::InputList indices, ::tensorflow::InputList data )
العقدة
::tensorflow::Node * node() const
المشغل::tensorflow::الإدخال
operator::tensorflow::Input() const
المشغل::tensorflow::الإخراج
operator::tensorflow::Output() const
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2024-11-24 (حسب التوقيت العالمي المتفَّق عليه)