No se puede llamar a `vectorize` con entradas de tamaño 0 a menos que se establezca `otypes`.
Clase CustomImageItemList(ImageList):
def custom_label(self,df, **kwargs)->’LabelList’:
“””Etiquetas personalizadas desde la ruta”””
file_names=np.vectorize(lambda files: str(files).split(‘/’)[-1][:-4])
get_labels=lambda x: df.loc[x,’lesion’]
#self.items es un np array de objetos PosixPath con cada ruta de imagen
labels= get_labels(file_names(self.items))
y = CategoryList(items=labels)
res = self._label_list(x=self,y=y)
return res
def get_data(bs, size):
train_ds = (CustomImageItemList.from_folder(path, extensions=’.jpg’)
.random_split_by_pct(0.15)
.custom_label(df)
.transform(tfms=get_transforms(flip_vert=True),size=size)
.databunch(num_workers=2, bs=bs)
.normalize(imagenet_stats))
return train_ds
data=get_data(16,224)
Estoy usando el marco Fast.ai para la clasificación de imágenes pero cuando ejecuto la línea anterior, obtengo el siguiente error “no se puede llamar a vectorize en entradas de tamaño 0 a menos que se establezcan los tipos de otypes”. ¿Algún consejo sobre cómo evitar esto?
davy.ai
Para evitar el error que está recibiendo, puede intentar establecer el parámetro
otypes
en la funciónnp.vectorize
. Este parámetro le permite especificar el tipo de salida de la función vectorizada. Por ejemplo, podría establecerotypes
enfloat
si espera que la salida de la función vectorizada sea un flotante.