ในหลายห้องสมุดเครือข่ายประสาทมี 'ชั้นฝัง' เหมือนในKerasหรือลาซัน
ฉันไม่แน่ใจว่าฉันเข้าใจฟังก์ชั่นของมันแม้จะอ่านเอกสาร ตัวอย่างเช่นในเอกสาร Keras มันบอกว่า:
เปลี่ยนจำนวนเต็มบวก (ดัชนี) เป็นเวกเตอร์ที่มีขนาดคงที่เช่น [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]
คนที่มีความสามารถสามารถอธิบายสิ่งที่มันทำและเมื่อคุณจะใช้มันได้หรือไม่
แก้ไข: เกี่ยวกับการวางในเอกสารมีไม่มากวางจากเอกสารดังนั้นคำถามของฉัน ฉันไม่เข้าใจการเปลี่ยนแปลงที่เกิดขึ้นหรือทำไมจึงควรใช้
อย่างไรก็ตามนี่คือวิธีอธิบายใน Keras:
การฝัง
keras.layers.embeddings.Embedding (input_dim, output_dim, init = 'uniform', input_length = None, น้ำหนัก = None, W_regularizer = None, W_constraint = None, mask_zero = False) เปลี่ยนจำนวนเต็มบวก (ดัชนี) , เช่น. [[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]
รูปร่างอินพุต: 2D เทนเซอร์พร้อมรูปร่าง: (nb_samples, sequence_length) รูปร่างเอาท์พุท: ตัวนับ 3D ที่มีรูปร่าง: (nb_samples, sequence_length, output_dim) อาร์กิวเมนต์:
input_dim: int> = 0 ขนาดของคำศัพท์เช่น 1 + ดัชนีจำนวนเต็มสูงสุดที่เกิดขึ้นในข้อมูลอินพุต output_dim: int> = 0 มิติของการฝังหนาแน่น
และนี่คือวิธีอธิบายในลาซานญ่า:
ชั้นสำหรับงานแต่งงานคำ อินพุตควรเป็นตัวแปร Tensor ชนิดจำนวนเต็ม
พารามิเตอร์: ขาเข้า: อินสแตนซ์ของเลเยอร์หรือทูเปิล
เลเยอร์ป้อนเข้าไปในเลเยอร์นี้หรือรูปร่างอินพุตที่คาดไว้
input_size: int
จำนวนชุดแต่งงานที่แตกต่างกัน การฝังครั้งสุดท้ายจะมีดัชนี input_size - 1
output_size: int
ขนาดของการฝังแต่ละอัน
W: Theano แบ่งปันตัวแปร, การแสดงออก, อาร์เรย์ที่มีค่าหรือเรียกได้
ค่าเริ่มต้นการแสดงออกหรือการเริ่มต้นสำหรับเมทริกซ์การฝัง นี่ควรเป็นเมทริกซ์ที่มีรูปร่าง (input_size, output_size) ดู lasagne.utils.create_param () สำหรับข้อมูลเพิ่มเติม
ตัวอย่าง
>>> from lasagne.layers import EmbeddingLayer, InputLayer, get_output >>> import theano >>> x = T.imatrix() >>> l_in = InputLayer((3, )) >>> W = np.arange(3*5).reshape((3, 5)).astype('float32') >>> l1 = EmbeddingLayer(l_in, input_size=3, output_size=5, W=W) >>> output = get_output(l1, x) >>> f = theano.function([x], output) >>> x_test = np.array([[0, 2], [1, 2]]).astype('int32') >>> f(x_test) array([[[ 0., 1., 2., 3., 4.], [ 10., 11., 12., 13., 14.]], [[ 5., 6., 7., 8., 9.], [ 10., 11., 12., 13., 14.]]], dtype=float32)