Klassifizierungsaufgaben sind in der KI am häufigsten, da sie nur wenige Bibliotheken erfordern. Ich versuche, mit den Ressourcen eines Online-Compilers zu schreiben, ohne die Feinheiten der Arbeit zu verstehen.
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
Mit der Funktion zum Dekodieren der Masken 0/1 können Sie sich beispielsweise auf deren Längen verlassen. Aber um Batch-Pakete eines neuronalen Netzwerks zu generieren, müssen Sie immer noch die aktuellen Ergebnisse überwachen.
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)
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()
Ausgabe des Ergebnisses = garantierter Kontakt mit dem geschriebenen Code. In diesem Fall ist keine Ausnahmebehandlung erforderlich.
Das obige ist der detaillierte Inhalt vonProduktiver Fehlerbehandler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!