تدفق التوتر:: العمليات:: Conv2D
#include <nn_ops.h>
يحسب الالتواء ثنائي الأبعاد input
رباعية الأبعاد وموترات filter
.
ملخص
بالنظر إلى موتر الإدخال للشكل [batch, in_height, in_width, in_channels]
وموتر المرشح/النواة للشكل [filter_height, filter_width, in_channels, out_channels]
، تؤدي هذه العملية ما يلي:
- يقوم بتسوية المرشح إلى مصفوفة ثنائية الأبعاد ذات الشكل
[filter_height * filter_width * in_channels, output_channels]
. - يستخرج تصحيحات الصورة من موتر الإدخال لتكوين موتر افتراضي للشكل
[batch, out_height, out_width, filter_height * filter_width * in_channels]
. - لكل تصحيح، قم بضرب مصفوفة المرشح ومتجه تصحيح الصورة باليمين.
بالتفصيل، باستخدام تنسيق NHWC الافتراضي،
output[b, i, j, k] =
sum_{di, dj, q} input[b, strides[1] * i + di, strides[2] * j + dj, q] *
filter[di, dj, q, k]
يجب أن يكون هناك strides[0] = strides[3] = 1
. بالنسبة للحالة الأكثر شيوعًا لنفس الخطوات الأفقية والقمم، strides = [1, stride, stride, 1]
.
الحجج:
- النطاق: كائن النطاق
- الإدخال: موتر رباعي الأبعاد. يتم تفسير ترتيب الأبعاد وفقًا لقيمة
data_format
، انظر أدناه للحصول على التفاصيل. - مرشح: موتر رباعي الأبعاد للشكل
[filter_height, filter_width, in_channels, out_channels]
- الخطوات: موتر 1-D للطول 4. خطوة النافذة المنزلقة لكل بُعد من أبعاد
input
. يتم تحديد ترتيب الأبعاد حسب قيمةdata_format
، انظر أدناه للحصول على التفاصيل. - الحشو: نوع خوارزمية الحشو المستخدمة.
السمات الاختيارية (انظر Attrs
):
- plain_paddings: إذا كانت
padding
هي"EXPLICIT"
، فقائمة كميات المساحة المتروكة الصريحة. بالنسبة للبعد التاسع، فإن مقدار المساحة المتروكة التي تم إدراجها قبل وبعد البعد هيexplicit_paddings[2 * i]
وexplicit_paddings[2 * i + 1]
على التوالي. إذا لم تكنpadding
"EXPLICIT"
، فيجب أن تكونexplicit_paddings
فارغة. - data_format: تحديد تنسيق البيانات لبيانات الإدخال والإخراج. باستخدام التنسيق الافتراضي "NHWC"، يتم تخزين البيانات بالترتيب التالي: [الدفعة، الارتفاع، العرض، القنوات]. وبدلاً من ذلك، يمكن أن يكون التنسيق "NCHW"، ترتيب تخزين البيانات: [دفعة، قنوات، ارتفاع، عرض].
- التوسعات: موتر 1-D للطول 4. عامل التمدد لكل بعد من أبعاد
input
. إذا تم التعيين على k > 1، فسيكون هناك خلايا k-1 تم تخطيها بين كل عنصر مرشح في ذلك البعد. يتم تحديد ترتيب الأبعاد حسب قيمةdata_format
، انظر أعلاه للحصول على التفاصيل. يجب أن تكون التوسعات في أبعاد الدفعة والعمق 1.
العوائد:
-
Output
: موتر رباعي الأبعاد. يتم تحديد ترتيب الأبعاد حسب قيمةdata_format
، انظر أدناه للحصول على التفاصيل.
البنائين والمدمرين | |
---|---|
Conv2D (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input filter, const gtl::ArraySlice< int > & strides, StringPiece padding) | |
Conv2D (const :: tensorflow::Scope & scope, :: tensorflow::Input input, :: tensorflow::Input filter, const gtl::ArraySlice< int > & strides, StringPiece padding, const Conv2D::Attrs & attrs) |
الصفات العامة | |
---|---|
operation | |
output |
الوظائف العامة | |
---|---|
node () const | ::tensorflow::Node * |
operator::tensorflow::Input () const | |
operator::tensorflow::Output () const |
وظائف ثابتة العامة | |
---|---|
DataFormat (StringPiece x) | |
Dilations (const gtl::ArraySlice< int > & x) | |
ExplicitPaddings (const gtl::ArraySlice< int > & x) | |
UseCudnnOnGpu (bool x) |
الهياكل | |
---|---|
Tensorflow:: ops:: Conv2D:: Attrs | محددات السمات الاختيارية لـ Conv2D . |
الصفات العامة
عملية
Operation operation
الإخراج
::tensorflow::Output output
الوظائف العامة
Conv2D
Conv2D( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input filter, const gtl::ArraySlice< int > & strides, StringPiece padding )
Conv2D
Conv2D( const ::tensorflow::Scope & scope, ::tensorflow::Input input, ::tensorflow::Input filter, const gtl::ArraySlice< int > & strides, StringPiece padding, const Conv2D::Attrs & attrs )
العقدة
::tensorflow::Node * node() const
المشغل::tensorflow::الإدخال
operator::tensorflow::Input() const
المشغل::tensorflow::الإخراج
operator::tensorflow::Output() const
وظائف ثابتة العامة
تنسيق البيانات
Attrs DataFormat( StringPiece x )
التوسعات
Attrs Dilations( const gtl::ArraySlice< int > & x )
حشوات صريحة
Attrs ExplicitPaddings( const gtl::ArraySlice< int > & x )
استخدمCudnnOnGpu
Attrs UseCudnnOnGpu( bool x )
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2024-11-16 (حسب التوقيت العالمي المتفَّق عليه)