분류 작업은 라이브러리가 거의 필요하지 않기 때문에 AI에서 가장 일반적입니다. 나는 작업의 복잡성을 이해하지 못한 채 온라인 컴파일러의 리소스를 사용하여 글을 쓰려고 노력합니다.
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
예를 들어 마스크 0/1 디코딩 기능을 사용하면 마스크 길이를 신뢰할 수 있습니다. 그러나 신경망의 배치 패킷을 생성하려면 여전히 현재 결과를 모니터링해야 합니다.
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()
결과 출력 = 작성된 코드와의 접촉이 보장됩니다. 이 경우 예외처리는 필요하지 않습니다.
위 내용은 생산적인 오류 처리기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!