본문 바로가기

CS

(25)
텐서플로 소개 머신러닝을 공부하기 위해 구글의 OPEN API인 TensorFlow(텐서플로,텐서플로우)를 사용할 예정이다. What is TensorFlow?공식 홈페이지 https://www.tensorflow.org/ 구글이 공개한 머신러닝을 위한 오픈소스 라이브러리현재 텐서플로는 검색, 구글 앱의 음성인식, 메일을 읽고 예시 답장을 제공하는 G메일 인박스의 ‘똑똑한 답장’ 서비스, 구글포토의 검색 등에 적용되어 있다.핵심기술은 C++로 작성됬으며, 프론트엔드 부분은 파이썬으로 구현되었다.운영체제는 리눅스와 OS X를 지원합니다. (Window는 안됨) 먼저 단어의 뜻을 naver에서 검색해 봤다.Tensor : 벡터의 확장 개념. 수학, 물리학에서 중요한 역할을 하는 텐서는 벡터의 개념을 포함한다.Flow : ..
[컴퓨터구조] Addressing Mode(주소지정 방식) Instruction에서 operand의 주소가 어떻게 지정 되는가? 1. Immediate addressing 즉시 주소 지정 방식operand가 Instrunction에 포함된다. ex) ADD 5장점 : 빠르다단점 : 수의 크기에 제한이 있다 2. Direct Addressing 직접 주소 지정 방식Instruction에 Operand의 주소가 들어간다. 한번의 메모리 접근이 필요하다. ex. ADD A단점: 주소공간이 제한된다. 3. Indirect Addressing 간접 주소 지정 방식Instruction의 주소필드는 실제 Operand의 주소 값을 가지는 곳의 주소를 가진다. ex. ADD (A)장점 : word길이가 n이면 2^n개의 주소 공간을 가진다.단점 : 실행에 2번의 메모리 접근이..
[컴퓨터 구조] CISC와 RISC 비교, 장단점 CISC (Complex Instruction Set Computer) CISC는 명령어의 길이가 가변적으로 구성된 것입니다.한 명령어의 길이를 줄여 디코딩 속도를 높이고 최소크기의 메모리 구조를 가집니다.대표적으로 X86.하드웨어의 비중이 큼. 장점컴파일러 작성이 쉽다.복잡한 명령도 마이크로코드(microcode)이므로 실행효율이 좋다.호환성이 좋다. 단점하나의 명령어가 복잡하여 해석(디코딩)에 시간이 오래걸리며, 해석에 필요한 회로가 복잡하다.적은 수의 일부 명령어만 주로 쓰인다.명령어의 길이가 달라서 동시의 여러개의 명령처리는 어렵다. +마이크로코드(micro code)CPU에 하드웨어에 내자된 기계어와 관련된 프로그램.CPU의 명령하나는 더 작은 동작들로 세분화 될 수 있는데, 하나의 기계어의 동..
[운영체제]메모리 관리 전략 8.1 배경(Background)- 메모리는 각각 주소가 할당된 일련의 바이트들로 구성된다.-명령어 실행과정메모리로부터 명령어 하나를 가져옴 -> 해독 -> 메모리에서 피연산자를 가져와서 명령을 실행하고 메모리에 다시 저장 8.1.1 기본 하드웨어- CPU는 레지스터 접근은 1사이클에 걸리지만, 메모리접근은 그 이상이 걸린다. -> 캐시를 이용해 CPU의 메모리 접근속도를 향상한다.- 특정 프로세스가 접근할 수 있는 합법적인 메모리 주소영역을 설정하여, 프로세스가 합법적인 영역만 접근할 수 있도록 한다. base와 limit레지스터에 하한과 상한 주소 값이 들어가 있는데 CPU에서 만들어진 주소가 이 주소들 사이에 있는지 확인한다. 8.1.2 주소의 할당(Address Binding)- 과정원시 프로그램..
[C++]템플릿(template) 1. 템플릿템플릿은 함수나 클래스의 형틀입니다. 형틀에는 다양한 자료형을 넣고 사용할 수 있습니다. 필요에 따라 원하는 함수나 클래스로 템플릿을 이용해 찍어낼 수 있습니다. 2. 함수 템플릿두개의 수를 비교하여 큰값을 얻는 함수를 만든다고 가정합시다. 그런 함수는 아래와 같게 됩니다.1234567int intMax(int a,int b){ if(a>b){ return a; }else{ return b; }}cs 위 함수는 int형만 비교할 수 있기 때문에 double형을 위한 함수도 생성합니다.12345678double doubleMax(double a,double b){ if(a>b){ return a; }else{ return b; }} Colored by Color Scriptercs 생각해보니 c..
[C++]다형성(Polymorphism) 다형성(Polymorphism)은 OOP(Object Oriented Programming)에서 서로 다른 객체들 사이에서도 같은 함수에 대해서 각각이 다르게 동작하는 것입니다. 쉽게 예를 들어 설명하면, 동물은 모두 각각의 소리를 냅니다. 개는 멍멍하고 짖고, 고양이는 야옹~ 하면서 짖습니다. 객체지향적인 개념으로 생각하면 동물 클래스를 상속받은 개와 고양이는 모두 '짖다'라는 함수를 가지고 있는데 이 함수는 개인지 고양이인지에 따라 내용이 달라집니다. 여기서 동물은 모두 짖는다는 사실은 변하지 않습니다. 위와같은 구조를 그림으로 나타내면 아래의 그림과 같습니다.동물 클래스는 짖는다는 사실은 모든 동물들에게 해당이 됩니다. 하지만 동물이 짖을수는 없습니다. 이러한 행위는 가상함수(virtual func..
[C++]복사생성자(Copy Constructor) 복사 생성자(Copy Constructor)는 같은 형태의 객체를 인자로 전달하는 생성자입니다.C++에서는 변수 초기화 방법이 2가지가 있습니다. 123int A = 5;//방법1int B(3);//방법2cout
[C++]상속 접근 지시자 보통 상속은 아래처럼 이루어집니다. 123class Child : public Parent{ };cs child는 parent 클래스를 상속받아 생성된다.여기서 public은 상속 접근 지시자(접근 제한자)중 하나이다. 상속 접근 지시자는 상속을 받을때 어떤 수준으로 상속을 받을지 결정합니다. 수준은 총 3가지(private,protected,public)로 분리됩니다. 3가지의 수준은 아래와 같은 정도의 상속정도를 나타냅니다.각 수준이 어느 정도인지는 아래에서 설명하겠습니다. 여기서는 누가 상대적으로 높은 수준인지를 알 수 있습니다. 상속 접근 지시자에 의해 각 멤버들이 어떻게 상속되는 지를 표현한 표를 봅시다. 각 항목은 상속받은 부모의 멤버들이 자식클래스에서 어떤 멤버에 해당되는지를 나타냅니다.여기..