Я пытаюсь сгенерировать набор данных, но получаю ошибку значения «ValueError:« a »не может быть пустым, если не взяты образцы» - PullRequest
0 голосов
/ 17 февраля 2019

Я использую набор данных, содержащий более 3000 изображений для передачи обучения.Это часть кода:

import glob
import numpy as np
import os
import shutil

np.random.seed(42)
files = glob.glob('train/*')

cat_files = [fn for fn in files if 'cat' in fn]
dog_files = [fn for fn in files if 'dog' in fn]
len(cat_files), len(dog_files)

cat_train = np.random.choice(cat_files, size=1500, replace=False)

1 Ответ

0 голосов
/ 17 февраля 2019

Трудно точно сказать, что происходит, без некоторых примеров данных из train/, но поиск в Google по вашему сообщению об ошибке обнаружил это, исходя из исходного кода для np.random.choice():

    def choice(self, a, size=None, replace=True, p=None):

    ...

    Raises
    -------
    ValueError
        If a is an int and less than zero, if a or p are not 1-dimensional,
        if a is an array-like of size 0, if p is not a vector of
        probabilities, if a and p have different lengths, or if
        replace=False and the sample size is greater than the population
        size

    ...

    # Format and Verify input
    a = np.array(a, copy=False)
    if a.ndim == 0:
        try:
            # __index__ must return an integer by python rules.
            pop_size = operator.index(a.item())
        except TypeError:
            raise ValueError("'a' must be 1-dimensional or an integer")
        if pop_size <= 0 and np.prod(size) != 0:
            raise ValueError("'a' must be greater than 0 unless no samples are taken")

Похоже, что, возможно, cat_files пусто или имеет неправильный тип.Вы проверили его содержимое, прежде чем передать его на номер np.random.choice()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...