Мне нужен объект набора данных, который содержит только изображения для обучения без учителя в среде Chainer. Я пытаюсь использовать DatasetMixin для этой цели.
Изображения - это список, содержащий изображения.
class SimpleDataset(dataset.DatasetMixin):
def __init__(self, Images):
self.Images = Images
def __len__(self):
return len(self.Images)
def get_example(self, i):
return self.Images[i]
Класс SimpleDataset, похоже, не может прочитать изображения, так как при запуске trainer.run () я получаю сообщение об ошибке:
call() missing 1 required positional argument: 'x'
Нужно ли обрабатывать список изображений в дальнейшем перед его передачей в класс DatasetMixin?
Что-то не так с использованием DatasetMixin для подачи только изображений таким образом?
Что я могу сделать, чтобы подать только изображения (без каких-либо ярлыков или других вещей) на мою модель?
class AutoEncoder(chainer.Chain):
def __init__(self, n_in, n_out):
super(AutoEncoder, self).__init__(
l1 = L.Linear(n_in, n_out),
l2 = L.Linear(n_out, n_in)
)
self.add_param('decoder_bias', n_in)
self.decoder_bias.data[...] = 0
def __call__(self, x):
h1 = F.dropout(self.l1(x))
h2 = F.linear(h1, F.transpose(self.l1.W), self.decoder_bias)
return F.sigmoid(h2)
def encode(self, x):
return F.dropout(self.l1(x))
def decode(self, x):
return self.l2(x)
model = L.Classifier(AutoEncoder(40000, 1000), lossfun=F.mean_squared_error)
model.compute_accuracy = False