Evet, bu mümkün. Sadece nesneleri kendiniz oluşturun, ör.
import torch.utils.data as data_utils
train = data_utils.TensorDataset(features, targets)
train_loader = data_utils.DataLoader(train, batch_size=50, shuffle=True)
nerede features
ve targets
tansörler bulunmaktadır. features
, bir skaler veya bir vektörü tahmin etmeye çalıştığınıza bağlı olarak 2-D, yani her bir çizginin bir eğitim örneğini temsil ettiği bir matris ve targets
1-D veya 2-D olabilir.
Bu yardımcı olur umarım!
DÜZENLEME: @ Sarthak sorusuna yanıt
Temelde evet. Bununla birlikte,
assert data_tensor.size(0) == target_tensor.size(0)
: türe TensorData
bir nesne oluşturma, daha sonra yapıcı (aslında data_tensor
adlandırılır) özelliği tensörünün ilk boyutlar ve (target_tensor
olarak adlandırılır), hedef tensör aynı uzunluğa sahip olup olmadığını araştırır Bu verileri daha sonra bir sinir ağına beslemek istiyorsanız, o zaman dikkatli olmanız gerekir. Evrişim katmanları sizinki gibi veriler üzerinde çalışırken, (bence) diğer tüm katman türleri matris formunda verilecek verileri bekler. Yani, böyle bir sorunla karşılaşırsanız, o zaman kolay bir çözüm, 412 veri kümenizi (bir çeşit tensör, ör. FloatTensor
olarak verilir) view
yöntemini kullanarak bir matrise dönüştürmek olacaktır. senin 5000xnxnx3 veri kümesi için, bu şu şekilde görünecektir:
2d_dataset = 4d_dataset.view(5000, -1)
(. değeri -1
otomatik ikinci boyutun uzunluğu anlamaya PyTorch söyler)
3D özelliklerim var: bir görüntü için 2B ve renk kanalları için bir ek boyut. Özellikleri 5000xnxnx3 olarak geçersem hala çalışır mı? 5000 veri noktalarının sayısı nxnx3 görüntü boyutu – Sarthak
Temelde evet, ancak cevabımın düzenlemesini kontrol edin. – pho7
A 4d Veri kümesi görünüm ifadesi için gerek yoktur olarak geçirilebilir. – Sarthak