คำนวณการบิดแบบ 2 มิติโดยกำหนดเทนเซอร์ 'อินพุต' และ 'ตัวกรอง' แบบ 4 มิติ
เมื่อพิจารณาเทนเซอร์อินพุตของรูปร่าง `[batch, in_height, in_width, in_channels]` และตัวกรอง / เทนเซอร์เคอร์เนลของรูปร่าง `[filter_height, filter_width, in_channels, out_channels]` op นี้จะดำเนินการต่อไปนี้:
1. ทำให้ตัวกรองเรียบเป็นเมทริกซ์ 2 มิติโดยมีรูปร่าง `[filter_height * filter_width * in_channels, output_channels]` 2. แยกแพตช์รูปภาพจากเทนเซอร์อินพุตเพื่อสร้างเทนเซอร์ เสมือน ของรูปร่าง `[แบทช์, out_height, out_width, filter_height * filter_width * in_channels]` 3. สำหรับแต่ละแพตช์ ให้คูณขวากับเมทริกซ์ตัวกรองและเวกเตอร์แพตช์รูปภาพ
โดยละเอียดด้วยรูปแบบ NHWC เริ่มต้น
เอาท์พุต[b, i, j, k] = sum_{di, dj, q} อินพุต[b, ก้าวย่าง[1] * i + di, ก้าวย่าง[2] * j + dj, q] * ตัวกรอง[di, dj, คิว, เค]
ต้องมี `ก้าว[0] = ก้าว[3] = 1` สำหรับกรณีที่พบบ่อยที่สุดของการก้าวในแนวนอนและจุดยอดเดียวกัน `การก้าว = [1, ก้าวก้าว, ก้าวย่าง, 1]`
คลาสที่ซ้อนกัน
ระดับ | Conv2d.ตัวเลือก | แอตทริบิวต์เพิ่มเติมสำหรับ Conv2d |
ค่าคงที่
สตริง | OP_NAME | ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow |
วิธีการสาธารณะ
เอาท์พุต <T> | เป็นเอาท์พุต () ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์ |
คงที่ <T ขยาย TNumber > Conv2d <T> | สร้าง (ขอบเขต ขอบเขต , อินพุต Operand <T>, ตัวกรอง Operand <T>, รายการ <Long> ก้าวย่าง, การขยายสตริง, ตัวเลือก... ตัวเลือก) วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ Conv2d ใหม่ |
Conv2d.Options แบบคงที่ | dataFormat (สตริง dataFormat) |
Conv2d.Options แบบคงที่ | การขยาย (รายการ<Long> การขยาย) |
Conv2d.Options แบบคงที่ | explarPaddings (รายการ <Long> explarPaddings) |
เอาท์พุต <T> | เอาท์พุท () เทนเซอร์ 4 มิติ |
Conv2d.Options แบบคงที่ | useCudnnOnGpu (การใช้บูลีน CudnnOnGpu) |
วิธีการสืบทอด
ค่าคงที่
สตริงสุดท้ายแบบคงที่สาธารณะ OP_NAME
ชื่อของ op นี้ ซึ่งรู้จักกันในชื่อของเอ็นจิ้นหลัก TensorFlow
วิธีการสาธารณะ
เอาท์ พุท สาธารณะ <T> asOutput ()
ส่งกลับค่าแฮนเดิลสัญลักษณ์ของเทนเซอร์
อินพุตสำหรับการดำเนินการ TensorFlow คือเอาต์พุตของการดำเนินการ TensorFlow อื่น วิธีการนี้ใช้เพื่อรับหมายเลขอ้างอิงสัญลักษณ์ที่แสดงถึงการคำนวณอินพุต
สร้าง Conv2d <T> แบบคงที่สาธารณะ (ขอบเขต ขอบเขต , อินพุต Operand <T>, ตัวกรอง Operand <T>, รายการ <Long> ก้าวย่าง, การขยายสตริง, ตัวเลือก... ตัวเลือก)
วิธีการจากโรงงานเพื่อสร้างคลาสที่รวมการดำเนินการ Conv2d ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
ป้อนข้อมูล | เทนเซอร์ 4 มิติ ลำดับมิติได้รับการตีความตามค่าของ `data_format` โปรดดูรายละเอียดด้านล่าง |
กรอง | เทนเซอร์ 4 มิติของรูปร่าง `[filter_height, filter_width, in_channels, out_channels]` |
ความก้าวหน้า | เทนเซอร์ 1-D ที่มีความยาว 4 การก้าวของหน้าต่างบานเลื่อนสำหรับแต่ละมิติของ "อินพุต" ลำดับมิติถูกกำหนดโดยค่าของ `data_format` โปรดดูรายละเอียดด้านล่าง |
การขยายความ | ประเภทของอัลกอริธึมการเติมที่จะใช้ |
ตัวเลือก | มีค่าแอตทริบิวต์ทางเลือก |
การส่งคืน
- อินสแตนซ์ใหม่ของ Conv2d
Conv2d.Options dataFormat แบบคงที่สาธารณะ (String dataFormat)
พารามิเตอร์
ข้อมูลรูปแบบ | ระบุรูปแบบข้อมูลของข้อมูลอินพุตและเอาต์พุต ด้วยรูปแบบเริ่มต้น "NHWC" ข้อมูลจะถูกจัดเก็บตามลำดับ: [แบทช์ ความสูง ความกว้าง ช่อง] หรืออีกทางหนึ่ง รูปแบบอาจเป็น "NCHW" ซึ่งเป็นลำดับการจัดเก็บข้อมูลเป็น: [แบทช์ ช่อง ความสูง ความกว้าง] |
---|
การขยาย Conv2d.Options แบบคงที่สาธารณะ (การขยายรายการ <Long>)
พารามิเตอร์
การขยาย | เทนเซอร์ 1-D ที่มีความยาว 4 ปัจจัยการขยายสำหรับแต่ละมิติของ "อินพุต" หากตั้งค่าเป็น k > 1 จะมีเซลล์ที่ข้าม k-1 ระหว่างองค์ประกอบตัวกรองแต่ละรายการในมิตินั้น ลำดับมิติจะกำหนดโดยค่าของ `data_format` โปรดดูรายละเอียดด้านบน การขยายขนาดแบทช์และความลึกต้องเป็น 1 |
---|
สาธารณะ Conv2d.Options ชัดเจน Paddings (รายการ <ยาว> ชัดเจน Paddings)
พารามิเตอร์
ชัดเจนPaddings | หาก `padding` เป็น `"EXPLICIT"` รายการของจำนวน padding ที่ชัดเจน สำหรับมิติที่ 3 จำนวนช่องว่างภายในที่แทรกก่อนและหลังมิติคือ `explicit_paddings[2 * i]` และ `explicit_paddings[2 * i + 1]` ตามลำดับ หาก `padding` ไม่ใช่ `"EXPLICIT"` `explicit_paddings` จะต้องเว้นว่างไว้ |
---|
เอาท์พุท สาธารณะ <T> เอาท์พุท ()
เทนเซอร์ 4 มิติ ลำดับมิติถูกกำหนดโดยค่าของ `data_format` โปรดดูรายละเอียดด้านล่าง