Как ускорить код, который конвертирует тензор в массив NumPy в tenorflow_datasets? - PullRequest
1 голос
/ 08 октября 2019

Хотя я хочу преобразовать тензор в массив NumPy в tenorflow_datasets, мой код постепенно значительно замедляется. Теперь я использую набор данных lsun / спальня с более чем 3 миллионами изображений. Как ускорить мой код?

В моем коде сохраняется кортеж, который имеет 100% изображений в массиве.

train_tf = tfds.load("lsun/bedroom", data_dir="{$my_directory}", download=False)
train_tf = train_tf["train"]
for data in train_tf:
    if d_cnt==0 and d_cnt%100001==0:
        train = (tfds.as_numpy(data["image"]), )
    else:
        train += (tfds.as_numpy(data["image"]), )

    if d_cnt%100000==0 and d_cnt!=0:
        with open("{$my_directory}/lsun.pickle%d"%(d_cnt), "wb") as f:
            pickle.dump(train, f)

    d_cnt += 1

1 Ответ

1 голос
/ 08 октября 2019

Ваше условие if никогда не будет выполнено после первого прохода, и, следовательно, ваша переменная train продолжает накапливаться.

Я думаю, вы хотите, чтобы условие было:

if d_cnt!=0 and d_cnt%100001==0:
    train = (tfds.as_numpy(data["image"]), )
...