Maison > développement back-end > Tutoriel Python > Gestionnaire d'erreurs productif

Gestionnaire d'erreurs productif

Patricia Arquette
Libérer: 2024-11-25 00:41:14
original
181 Les gens l'ont consulté

Productive error handler

La tâche de classification est la plus courante en IA car elle nécessite peu de bibliothèques. J'essaie d'écrire en utilisant les ressources d'un compilateur en ligne, sans comprendre les subtilités du travail.

def rle_decode(mask_rle, shape=(1280, 1918, 1)):
    '''
    mask_rle: run-length as string formated (start length)
    shape: (height,width) of array to return 
    Returns numpy array, 1 - mask, 0 - background
    '''
    img = np.zeros(shape[0]*shape[1], dtype=np.uint8)

    s = mask_rle.split()
    starts, lengths = [np.asarray(x, dtype=int) for x in (s[0:][::2], s[1:][::2])]
    starts -= 1
    ends = starts + lengths    
    for lo, hi in zip(starts, ends):
        img[lo:hi] = 1

    img = img.reshape(shape)
    return img
Copier après la connexion

Par exemple, en utilisant la fonction de décodage des masques 0/1, vous pouvez vous fier à leurs longueurs. Mais pour générer des paquets batch d'un réseau de neurones, vous devez toujours surveiller les résultats actuels.

def keras_generator(gen_df, batch_size):
    while True:
        x_batch = []
        y_batch = []

        for i in range(batch_size):
            img_name, mask_rle = gen_df.sample(1).values[0] 
            img = cv2.imread('data/train/{}'.format(img_name))
            mask = rle_decode(mask_rle)

            img = cv2.resize(img, (256, 256)) 
            mask = cv2.resize(mask, (256, 256))

            x_batch += [img] 
            y_batch += [mask]

        x_batch = np.array(x_batch) / 255. 
        y_batch = np.array(y_batch)

        yield x_batch, np.expand_dims(y_batch, -1)
Copier après la connexion
  1. J'aime mettre des sorties intermédiaires du résultat pour un contact visuel avec le code
  2. Si le résultat ne semble pas satisfaisant, j'édite les fonctions précédentes
im_id = 5
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(25, 25))
axes[0].imshow(x[im_id]) 
axes[1].imshow(pred[im_id, ..., 0] > 0.5) 

plt.show()
Copier après la connexion

Sortie du résultat = contact garanti avec le code écrit. Dans ce cas, la gestion des exceptions n'est pas nécessaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal