เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การสร้างโมเดล Transformer

ที่ PyBooks เครื่องมือแนะนำหนังสือที่กำลังพัฒนาอยู่นี้ต้องการความสามารถที่ละเอียดขึ้นในการวิเคราะห์ความรู้สึกจากรีวิวของผู้ใช้ คุณเชื่อว่าการใช้ transformer ซึ่งเป็นสถาปัตยกรรมที่ทันสมัยจะช่วยให้บรรลุเป้าหมายนี้ได้ จึงตัดสินใจสร้างโมเดล transformer เพื่อเข้ารหัส (encode) ความรู้สึกในรีวิวเพื่อเริ่มต้นโปรเจกต์

แพ็กเกจต่อไปนี้ถูก import ให้แล้ว: torch, nn, optim

ข้อมูล input ประกอบด้วยประโยค เช่น: "I love this product", "This is terrible", "Could be better" … พร้อมกับป้ายกำกับ sentiment แบบ binary เช่น: 1, 0, 0, ...

ข้อมูล input ถูกแบ่งและแปลงเป็น embedding ไว้ในตัวแปรต่อไปนี้: train_sentences, train_labels, test_sentences, test_labels, token_embeddings

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Deep Learning สำหรับข้อความด้วย PyTorch

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดค่าเริ่มต้นให้กับ transformer encoder
  • กำหนด fully connected layer โดยอิงจากจำนวนคลาสของ sentiment
  • ใน forward method ให้ส่งข้อมูล input ผ่าน transformer encoder แล้วตามด้วย linear layer

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

class TransformerEncoder(nn.Module):
    def __init__(self, embed_size, heads, num_layers, dropout):
        super(TransformerEncoder, self).__init__()
        # Initialize the encoder 
        self.encoder = nn.____(
            nn.____(d_model=embed_size, nhead=heads),
            num_layers=num_layers)
        # Define the fully connected layer
        self.fc = nn.Linear(embed_size, ____)

    def forward(self, x):
        # Pass the input through the transformer encoder 
        x = self.____(x)
        x = x.mean(dim=1) 
        return self.fc(x)

model = TransformerEncoder(embed_size=512, heads=8, num_layers=3, dropout=0.5)
optimizer = optim.Adam(model.parameters(), lr=1e-3)
criterion = nn.CrossEntropyLoss()
แก้ไขและรันโค้ด