분류 전체보기 64

tensorflow :: 텐서플로우 ConfigProto (v1 -> v2 코드 업그레이드 8)

ConfigProto 텐서플로우에서 configproto 는 연산 방식을 설정하는 기능의 함수다. tf.session 으로 생성한 세션 내에서 연산을 진행할 때 cpu 를 사용할 것인지, 아니면 gpu 를 사용할 것인지 결정할 수 있다. config = tf.ConfigProto() # AttributeError: module 'tensorflow' has no attribute 'ConfigProto' 위와 같이 호출하며, 이 때 몇몇 인자값들을 지정하면 연산 방식을 설정할 수 있다. 그런데 v2.0 환경에서 ConfigProto 를 사용할 경우 위 주석 내용과 같이 에러가 발생한다. tensorflow v2.0 부터는 더 이상 ConfigProto 를 제공하지 않기 때문이다. 1. tf.config...

:: ai/tensorflow 2022.06.14

react :: 모바일에서 클릭(터치) 시 파란 하이라이트(highlight) 생기지 않게 하기

태그를 사용하여 특정 구역을 클릭했을 때 다른 페이지로 넘어가도록 onClick 이벤트를 구현했다. 웹에서는 아무 문제가 없어 보였는데 모바일에서 클릭(터치)하니 일시적으로 파란 하이라이트(그림자)가 생긴다. 위와 같이 원 모양을 클릭했을 때 파란 색으로 덮이는 현상. 이런 하이라이트 없이 클릭되도록 하기 위해서는 css에 다음 옵션을 추가해주면 된다. .Panel { -webkit-tap-highlight-color: transparent; } 참고로 hover 나 active 상태에 대한 css 가 적용된 경우 (.Panel:hover 또는 .Panel:active) hover/active 속성에 적용하는 것이 아닌, 해당되는 클래스 자체의 속성에 넣어주어야 함!

tensorflow :: 텐서플로우 Saver (v1 -> v2 코드 업그레이드 7)

Saver 텐서플로우의 Saver 모듈은 모델과 파라미터를 저장하고 불러오는 기능을 제공한다. 모델을 학습시키고 나면 학습된 모델을 토대로 기능을 수행해야하므로 저장이 필요하다. 그리고 보통 머신러닝 학습을 진행하면 시간이 오래 소요되는데, Saver 의 save 함수를 이용하면 학습 중간중간 특정 시점마다 모델 저장 또한 가능하다. (학습 시간이 마냥 길어진다고 모델의 성능이 좋아지는 것은 아니기에 이렇게 중간 저장해둔 모델이 유용하게 쓰일 수 있다.) 모델이 저장되면 checkpoint 파일들과 meta graph 파일(.meta 확장자) 이 남게 되는데 checkpoint 파일에는 weights, biases, grandients 등의 정보가 저장되며 meta graph 파일에는 말 그대로 모델 학..

:: ai/tensorflow 2022.06.07

docker :: 도커파일(Dockerfile) 의 개념, 작성 방법/문법, 작성 예시

1. 도커파일(Dockerfile) 이란? 도커파일은 docker 에서 이미지를 생성하기 위한 용도로 작성하는 파일이다. 만들 이미지에 대한 정보를 기술해 둔 템플릿(template) 이라고 보면 된다. 도커 이미지를 만들 때 docker build [옵션] [작성한 dockerfile 경로] 위와 같이 명령어를 입력하면 작성한 도커파일의 내용을 기반으로 이미지 빌드가 시작된다. 2. 도커파일 예시 FROM ubuntu:18.04 COPY . /app RUN make /app CMD python /app/app.py 도커파일은 위와 같이 명령어들이 나열된 형태로 작성한다. 그리고 각 line 의 맨 앞은 대문자로 이루어진 지시어(Instruction) 로 시작한다. 3. 도커파일 Instructions ..

:: docker 2022.05.24

docker :: 도커(docker)의 개념, 가상머신(VM)과 컨테이너(Container) 비교, 도커 이미지(Image)와 레지스트리(Registry)

1. 도커(docker) 란? 도커는 소프트웨어를 컨테이너(Container) 라는 표준화된 유닛으로 패키징하여 애플리케이션을 신속하게 구축하고 배포할 수 있게 해주는 오픈소스 프로젝트이다. 라고 가이드 문서들에 쓰여 있다. 쉽게 말해보자면, 서비스하려고 하는 애플리케이션(코드 등)과 그에 필요한 라이브러리 등을 '컨테이너'라는 공간에 담아서 여기저기 배포하기 쉽게 도와주는 플랫폼이라 할 수 있다. 하나의 컨테이너는 비록 크기는 작지만 하나의 컴퓨터와 같은 기능을 할 수 있다. 즉, 운영체제도 있고 내가 서비스하려는 애플리케이션도 들어있고 그에 필요한 라이브러리들도 들어있다. 이런 컨테이너를 여기저기 배포하기가 과연 쉬울까? 그건 아니다. 컨테이너 자체는 한꺼번에 옮기기는 좀 무겁고, 대신 '컨테이너 이..

:: docker 2022.05.18

react :: 텍스트(text)와 컴포넌트(component) 정렬(align)하기 (네이버 지도 정렬하기)

리액트 프로젝트 내부의 .js (javascript) 파일에 텍스트를 입력하면 기본적으로 (당연하게도) 좌측 정렬로 보여진다. 만약 정렬을 바꾸고 싶다면 .css 파일에서 해당 텍스트가 속한 클래스의 텍스트 속성을 설정해주어야 한다. TORAMKO 코딩하는 토람이 App.js 의 return 값에 위와 같이 'TextBox' 라는 클래스명으로 div 를 생성하여 그 안에 텍스트를 작성해두었다. .TextBox { text-align: center; font-size: 18px; line-height: 1.5; } 그리고 App.css 에서 위와 같이 TextBox 의 속성을 지정해주었다. text-align: center; 속성에 의해 텍스트가 가운데로 정렬된다. 텍스트 정렬은 요렇게 매우 간단하다. 그..

docker :: invalid reference format: repository name must be lowercase 에러 해결

컨테이너를 띄우기 위해 docker run 을 실행하던 중 다음 에러가 발생했다. docker: invalid reference format: repository name must be lowercase. invalid reference format 이라 하니 감이 잘 오지 않지만 위 에러의 원인은 docker run 명령어에 오타가 났을 가능성이 높다. - 띄어쓰기를 제대로 하지 않음 - argument 값(value) 입력을 빼먹음 - 명령어 순서가 잘못됨 위와 같이 여러 가능성이 있는데 나의 경우는 두 번째로, storage(volume) 맵핑을 위해 -v 옵션을 사용할 때 -v 를 안적고 볼륨명만 적어서 에러가 났다. (실제로 요 볼륨 입력 부분에서 에러가 나는 경우가 가장 많다고 한다.) 이 외..

:: docker 2022.04.30

DL :: 인공지능, 머신러닝, 딥러닝 뭐가 다른거죠? (feat. 생각하는 기계?)

* 'Deep Learning with Python' 도서를 참고하여 작성한 내용입니다. 인공지능(AI) 이라는 말은 이제 너무 흔한 단어가 돼버렸다^.^; IT 업계 종사자가 아니더라도 인공지능, 머신러닝, 딥러닝이라는 단어를 들어보지 못한 사람은 아마 없을 것이다. 최근 몇 년간 인공지능 분야가 무서운 속도로 발전하면서 오래 전에는 영화에서나 가능한 줄 알았던 것들이 현실로 다가오고 있고, 심지어는 이미 어느 정도 보급화되고있다. 대표적으로 지능형 챗봇, 자율주행 자동차, 가상 비서 같은 것들 말이다. (테슬라사고싶다) 이제는 어느 정도 상식의 영역으로 들어온 만큼 인공지능의 기본적은 개념은 알아두는 게 좋을 것 같다 :) 1. 인공지능, 머신러닝, 딥러닝: 뭐가 다른거죠? AI 에 대해 알고 싶다면..

:: ai 2022.04.21

tensorflow :: 텐서플로우 Optimizer 개념 및 코드 업그레이드 (v1 -> v2 코드 업그레이드 6)

Optimizer 머신러닝 모델 학습에서 optimizer 는 꼭 필요한 개념이다. 기계는 주어진 연산에 따라 데이터를 학습시키면서 매 단계마다 손실값(loss)을 계산한다. 그리고 이 손실값을 줄여나가기 위해 변수(variable)들을 약간씩 조정하면서 다시 학습을 진행해 나간다. 손실값이 커진다는 것은 쉽게 말하자면 '주어진 학습데이터에 잘 맞지 않는 모델을 만들어가고 있다'는 건데, 그래서 기계가 중간중간 손실값을 체크하면서 이를 줄여나갈 수 있는 방향으로 최적화(optimization)를 진행하는 것이다. 이 최적화(optimization)를 진행하는 것이 옵티마이저(Optimizer) 이고 손실 함수를 통해 얻은 손실값으로부터 모델을 업데이트하는 방식을 의미한다. 옵티마이저의 종류는 다양한데 (..

:: ai/tensorflow 2022.04.17

tensorflow :: 텐서플로우 losses 의 regularization loss (v1 -> v2 코드 업그레이드 5)

losses 머신러닝 모델링에서 손실함수의 정의와 loss 값 연산은 필수적이다. 기존 tensorflow v1.x 으로 모델을 구축해보았던 개발자라면 keras.losses 모듈 내 함수들을 사용해봤을 것이다. 그 중 아래의 'get_regularization_loss' 는 총 regularization loss 값을 계산하는 기능을 한다. 그러나 v2.x 버전으로 업그레이드 한 후에 해당 코드는 다음과 같이 에러가 발생한다. tf.losses.get_regularization_loss() # AttributeError: module 'tensorflow.keras.losses' has no attribute 'get_regularization_loss' 이는 텐서플로우 v2.0 에서 더 이상 기존 방..

:: ai/tensorflow 2022.04.12
300x250