Эпоха 1/3
ПРЕДУПРЕЖДЕНИЕ: Обнаружено, что набор данных содержит только одно поле, поэтому формат возврата был изменён с версии Paddle 2.1. В Paddle <= 2.0, DataLoader добавляет список вокруг выходных данных (например, возвращает [data]), а в Paddle >= 2.1, DataLoader возвращает единственное поле напрямую (например, возвращает data). Например, в следующем коде:
import numpy as np
from paddle.io import DataLoader, Dataset
class RandomDataset(Dataset):
def __getitem__(self, idx):
data = np.random.random((2, 3)).astype('float32')
return data
def __len__(self):
return 10
dataset = RandomDataset()
loader = DataLoader(dataset, batch_size=1)
data = next(loader())
В Paddle <= 2.0 данные имеют формат [Tensor(shape=(1, 2, 3), dtype=float32)]
, а в Paddle >= 2.1 данные имеют формат Tensor(shape=(1, 2, 3), dtype=float32)
.
Отладочная информация (последний вызов):
Файл "finetune.py", строка 154, в <модуль>
train(args)
Файл "finetune.py", строка 100, в train
loss = F.cross_entropy(logits, labels)
Файл "H:\anaconda\envs\ocr_env\lib\site-packages\paddle\nn\functional\loss.py", строка 1392, в cross_entropy
'use_softmax', use_softmax)
TypeError: Тензор содержит неверный тип, он содержит int, но должен быть int64_t.
[Подсказка: Ожидаемый valid == true, но получено valid:0 != true:1.] (в C:\home\workspace\Paddle_release2\paddle/fluid/framework/tensor_impl.h:33)
[оператор <softmax_with_cross_entropy> ошибки]