es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para evitar el error que está recibiendo, puede intentar establecer el parámetro otypes en la función np.vectorize. Este parámetro le permite especificar el tipo de salida de la función vectorizada. Por ejemplo, podría establecer otypes en float si espera que la salida de la función vectorizada sea un flotante.

Comments are closed.