Python 5

Tapo H200 D230 녹화 영상 다운로더

"공식 API도, 편한 내보내기도 없는 Tapo H200/D230에서 녹화 영상을 조회하고 MP4로 내려받기까지의 개발 기록"결국 내부망의 Tapo H200의 녹화 영상을 확인하는 웹 도구를 만들었다Tapo D230 도어벨과 H200 허브를 사용하고 있다. 도어벨이 움직임을 감지하면 H200에 녹화가 저장되고, Tapo 앱에서 영상을 확인할 수 있다.여기까지만 보면 평범한 홈 카메라 서비스다. 문제는 그다음이다.단지 내 허브에 저장된 내 영상을 외부에서 확인하고싶을 뿐이다. 고객지원에 문의했지만 무시당한지 7개월 TP LINK 제품은 이제 절대 다시 안쓸 것이다.공식적으로 제공되는 API도 없고, 따로 DVR을 돌리는 방법도 마땅치 않았다.결국 직접 만들었다.프로젝트 저장소: tapo-h200-recor..

컴퓨터 2026.07.12

파이썬으로 RNN 구현하기

직접 Numpy로 RNN 층을 구현해보겠습니다. 앞서 메모리 셀에서 은닉 상태를 계산하는 식을 다음과 같이 정의하였습니다. h{t} = tanh(W{x}X{t} + W{h}h_{t−1} + b) #의사 코드(pseudocode)로 실제 동작하는 코드가 아님. hidden_state_t = 0 # 초기 은닉 상태를 0(벡터)로 초기화 for input_t in input_length: # 각 시점마다 입력을 받는다. output_t = tanh(input_t, hidden_state_t) # 각 시점에 대해서 입력과 은닉 상태를 가지고 연산 hidden_state_t = output_t # 계산 결과는 현재 시점의 은닉 상태가 된다. 우선 t 시점의 은닉 상태를 hidden_state_t라는 변수로 선언하..

CNN으로 MNIST분류하기

CNN으로 MNIST 분류하기 1. 모델 이해하기 우리가 만들 모델의 아키텍처를 이해해봅시다. 합성곱 신경망은 출처에 따라서 합성곱 층을 부르는 단위가 조금 다릅니다. (1) 첫번째 표기 방법 합성곱(nn.Cov2d) + 활성화 함수(nn.ReLU)를 하나의 합성곱 층으로 보고, 맥스풀링(nn.MaxPoold2d)은 풀링 층으로 별도로 명명합니다. (2) 두번째 표기 방법 합성곱(nn.Conv2d) + 활성화 함수(nn.ReLU) + 맥스풀링(nn.MaxPoold2d)을 하나의 합성곱 층으로 봅니다. 다시 말해 풀링도 하나의 층으로 보느냐, 안 보느냐의 문제인데 누가 옳고 틀리냐의 문제는 아니므로, 이번 챕터에서는 편의를 위해 맥스풀링까지도 포함해서 하나의 합성곱 층으로 판단하고 정리해보겠습니다. 다시 ..

파이썬 자료형의 값을 저장하는 공간, 변수

파이썬에서는 같다 라고 선언하면 주소값 까지 같다고 본다. 그래서 추후에 한쪽 변수를 바꿔줘도 다른 한쪽 변수가 변하는 상황이 생긴다. a = [1,2,3] b = a print(id(a)) print(id(b)) 1906865579072 1906865579072 a[1]을 4로 바꿔줫더니 b도 바뀌는 상황이 발생한다. a[1] = 4 print(a) print(b) [1, 4, 3] [1, 4, 3] 위와 같은 상황을 방지하기 위해서 [:] 이용 c=[1,2,3] d=c[:] c[1]=4 print(c) print(d) [1, 4, 3] [1, 2, 3] copy모듈 이용 from copy import copy e=[1,2,3] f=copy(e) e[1]=4 print(e) print(f) [1, 4,..