我正在使用包含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)
答案 0 :(得分:0)
在没有train/
的一些示例数据的情况下,很难确切地说明发生了什么,但是通过np.random.choice()
的源代码在Google上搜索您的错误消息就发现了这一点:
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()
之前,您是否已验证其内容?
答案 1 :(得分:0)
是您的文件位置问题。转到检查文件位置,应该像这样C:...> train>(图像)。