def cluster_acc(y_true, y_pred): y_true = np.array(y_true) y_pred = np.array(y_pred) D = max(y_pred.max(), y_true.max()) + 1 w = np.zeros((D, D), dtype=np.int64) for i in range(y_pred.size): w[y_pred[i], y_true[i]] += 1 ind = linear_assignment(w.max() - w) return sum([w[i, j] for i, j in zip(ind[0], ind[1])]) * 1.0 / y_pred.size 위 코드 부분에서 이게 어떻게 cluster의 accuracy를 계산하는지 직관적으로 이해가 되지 않습니다. 제가 이해하기로는 y_true는 각 image의 label을 batchsize에 따라서 가져오니까 y_true는 (120, )의 tensor가 될 것이고, y_pred는 k_means를 통과한 값이 될 것입니다. 이런 식이겠죠 y_true = [0, 1, 1, 2, 3, 0, ...] y_pred = [3, 4, 4, 5, 1, 3, ...] 계산을 하면 D = 10이 될 것이고, w는 10X10짜리 tensor가 될 것입니다. 이 때 for i in range(120):에서 위의 6 라벨이 들어왔다고 치면 W = [[0, 0, 2, 0, 0, 0, 0, 0, 0, 0] [0, 0, 0, 2, 0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 1, 0, 0, 0, 0, 0] [0, 1, 0, 0, 0, 0, 0, 0, 0, 0] ...] 이런 식으로 코딩이 될 것입니다. 그러면 이게 W.max()를 취하면 2가 나올테고, w.max() - w 이 식은 [[2, 2, 0, 2, 2, ...], [2,2,2,0,2,...], [2,2,2,2,1,...], [2,1,2,2,2,...]...] 이렇게 되고 여기에서 linear_assignment를 통과한다면 한 batch에서 정확도를 구할 수 있다는 것인데, linear_assignment가 hungarian algorhythm을 통해서 bipartite한 graph에서의 정보를 처리한다데 이게 구체적으로 어떤 공식에 의해서 되는 것인지 잘 모르겠습니다.. 매번 감사합니다.
@WebServlet(name= "requestBodyStringServlet", urlPatterns = "/request-body-string") 강의에서 서블릿에 대한 어노테이션 작성하실 때 name =" request~~~이 부분 복사해서 가져오신 다음 이부분에서 RequestBody~~~ 첫 알파벳 R -> r (대문자에서 소문자)로 바꾸시는 이유가 궁금합니다. 자바에서 이름 작성할 때 낙타등? 모양으로 하는 걸로 아는데 그 형식에 따라 작성하시는 건가요?
강의에서 이해하기로는, 생성자를 private으로 두어서 최초 생성된 생성자 외에는 static 매소드로 객체를 호출해서 같은 객체이다! 로 이해를 했습니다. 그런데 System.out.println(instance1.toString()); System.out.println(instance2.toString()); 로 두 객체의 위치값을 확인하면 왜 다른것일까요? 같은 객체가 호출된 것이라면 위치값이 같은것이 아닌지 궁금합니다! package com.hi.core.singleton; public class SingletonService { // 1. static 영역에 객체를 딱 1개만 생성한다 private static final SingletonService instance = new SingletonService(); // 2. public 으로 열어서 객체 인스터스가 필요하면 이 static 매서드를 통해서만 조회하도록 허용한다 public static SingletonService getInstance() { return instance; } // 3. 생성자를 private으로 선언해서 외부에서 new 키워드를 사용한 객체 생성을 못하게 막는다 private SingletonService(){ } public void logic(){ System.out.println("싱글톤 객체 로직 호출"); } } package com.hi.core.singleton; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; public class singletonServiceTest { @Test @DisplayName("싱글톤 패턴을 적용한 객체 생성") public void singletonServiceTest() { SingletonService instance1 = SingletonService.getInstance(); SingletonService instance2 = SingletonService.getInstance(); System.out.println(instance1.toString()); System.out.println(instance2.toString()); assertThat(instance2).isSameAs(instance2); instance1.logic(); } 테스트 결과(콘솔) com.hi.core.member.MemberServiceImpl@1176dcec // 두 객체의 위치값이 다름??? com.hi.core.member.MemberServiceImpl@120d6fe6 Process finished with exit code 0
Register.js 에서 useEffect(()=> { if (uesr.accessToken) { navigate("/") } 이 이미 로그인이 되어 토큰을가지고있으면 회원가입 페이지로 못간다는 얘기인데 저 useEffect, useSelector(state) 때문에 회원가입 성공시에 navigate("/login") 로그인 페이지로 이동했을떄 토큰을 들고있어서 로그인페이지인데 우측상단엔 logout 이 떠있네요...
안녕하세요, 테스트 진행 중 오류가 발생하여 문의드립니다. 회원가입을 테스트할 때 @Transactional을 주석처리하면 정상 작동되지만, 활성화하면 오류가 발생합니다. java.sql.SQLException: Connection is closed 이것은 JdbcMemberRepository의 sava() 작성 내용입니다. @Transactional을 활성화하면 오류가 발생하는 원인과 해결 방법이 궁금합니다..!!
따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
const dispatch = useAuthDispatch(); 에도 마찬가지로 타입 추론이 unknown 타입으로 되서 그림과 같이 빨간줄이 뜨는데 어떻게 처리해야 하나요? export const useAuthDispatch = () => useContext(DispatchContext) as any; 위와 같이 처리하는 방법도 괜찮나요??
현황 : BCCD에서 사용하던 코드로 Inference를 하려 했는데 다음과 같은 오류가 발생하고 있습니다 바쁘시겠지만 문의드립니다 ◇ 문의사항 : 해결방안이 있을까요? 코드 import torch from mmdet.apis import multi_gpu_test, single_gpu_test from mmcv.parallel import MMDataParallel, MMDistributedDataParallel model_ckpt = MMDataParallel(model_ckpt, device_ids=[0]) outputs=single_gpu_test(model_ckpt, data_loader, True, "저장폴더", 0.5) --------------------------------------------------------------------------- AssertionError Traceback (most recent call last) Input In [6], in <cell line: 8>() 5 model_ckpt = MMDataParallel(model_ckpt, device_ids=[0]) 6 # single_gpu_test를 활용하므로 samples_per_gpu는 1이 되야함 ----> 8 outputs=single_gpu_test(model_ckpt, data_loader, True, "저장폴더", 0.5) File ~/.local/lib/python3.9/site-packages/mmdet/apis/test.py:38, in single_gpu_test(model, data_loader, show, out_dir, show_score_thr) 36 img_tensor = data['img'][0].data[0] 37 img_metas = data['img_metas'][0].data[0] ---> 38 imgs = tensor2imgs(img_tensor, **img_metas[0]['img_norm_cfg']) 39 assert len(imgs) == len(img_metas) 41 for i, (img, img_meta) in enumerate(zip(imgs, img_metas)): File ~/.local/lib/python3.9/site-packages/mmcv/image/misc.py:34, in tensor2imgs(tensor, mean, std, to_rgb) 32 if torch is None: 33 raise RuntimeError('pytorch is not installed') ---> 34 assert torch.is_tensor(tensor) and tensor.ndim == 4 35 channels = tensor.size(1) 36 assert channels in [1, 3] AssertionError: show_result_pypot 사용 시 오류가 발생하는데 해결방안이 있을까요? 코드 from mmdet.apis import show_result_pyplot import cv2 #brg image 사용 img = cv2.imread("sample 이미지 위치") model.cfg = cfg result = inference_detector(model, img) show_result_pyplot(model, img, result, score_thr=0.3) 결과 /home/namu/.local/lib/python3.9/site-packages/mmdet/datasets/utils.py:66: UserWarning: "ImageToTensor" pipeline is replaced by "DefaultFormatBundle" for batch inference. It is recommended to manually replace it in the test data pipeline in your config file. warnings.warn(
강사님 안녕하세요. 강의 잘 보았습니다. 실제 SpringBatch를 업무에 사용 중인데 서버에서 배치job(jar) 실행 시(SpringBatch 기동 시) cpu 사용률이 급격하게 많이 올라가는(80%정도)걸 확인하였습니다 각 상황에 따라 다르겠지만 SpringBatch에서 설정이나 불필요한 모듈 제외하는 등으로 시작 시 cpu 사용량을 좀 줄일 수 있는 방법이 있는지 궁금합니다.
[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
사진으로 버튼을 구현하는 코드에서 ImageFadeOut 함수에 console.log("OK"); 코드를 추가해본 결과, n번 문항마다(버튼을 n번 누적해서 누를 때) 해당 코드가 2^(n-1)번 실행됩니다. 예제에서는 문항이 총 3개여서 문제가 없었지만, 10개 이상부터는 심한 렉이 발생되고 14개부터는 진행이 거의 불가능했습니다. ImageFadeOut 함수를 중복없이 호출하는 방법이 무엇인지 알려주셨으면합니다. 감사합니다.