1.1 상자로서의 변수
변수의 성질
-변수와 데이터는 별개
-변수에 데이터가 대입 혹은 할당함
-변수 속을 보면 데이터를 알수 있고 이는 참조한다고 표현함
1.2 Variable 클래스 구현
import numpy as np
# 1번
class Variable:
def __init__(self, data):
self.data = data
# 2번
data = np.array(1.0) # 넘파이 다차원 배열, dtype: float64
# float64(또는 double precision 부동소수점)은 64비트를 사용하여 실수를 표현하는 방식
# 3번
x = Variable(data) # Variable의 인스턴스, x안에 실제 데이터(=data)가 담겨있음
print(x.data)
# 4번
# data에 새로운 값을 넣으면 새로운 데이터가 대입됨
data = np.array(2.0)
x = Variable(data)
print(x.data)

1번: Variable이라는 상자(=클래스) 안에 data가 들어가는데 틀만 만들어준 거임

2번: array(1.0)의 데이터를 만들어줌

3번: 인스턴스 Variable에 array(1.0)의 데이터를 저장해준다

4번: x가 메모리에 잘 담긴것을 알 수 있고 안에 데이터를 보고싶으면 print(x.data)를 쓰면됨
1.3 넘파이 다차원 배열
- 다차원 배열: 숫자등의 원소가 일정하게 모여 있는 데이터 구조, 원소의 순서에는 방향이 있고 이방향을 차원 혹은 축이라고 함
-스칼라: 0차원 배열
-벡터: 1차원 배열
-행렬: 2차원 배열
-텐서: 다차원 배열
* 벡터의 차원은 벡터의 원소의 갯수를 말하는 것이고 3차원 벡터는 np.array([1,2,3])이렇게 생겼음
* 3차원 배열은 배열의 차원은 원소가 아닌 축이 3개라는 뜻
* 리스트와 배열 차이: 리스트 클래스 객체는 각각의 원소가 다른 자료형이 될 수 있음
그러나 배열 객체 객체는 C언어의 배열처럼 연속적인 메모리 배치를 가지기 때문에 모든 원소가 같은 자료형이어야 함
-배열의 차원과 크기
ndim은 배열의 차원, shape은 배열의 크기
# 예시
c = np.array([[0, 1, 2], [3, 4, 5]])
print(c.ndim)
print(c.shape)

(추가) 넘파이 데이터 타입
링크: https://kongdols-room.tistory.com/53
NumPy의 데이터 타입(자료형), 관련된 함수 - NumPy(2)
참고 자료https://docs.scipy.org/doc/numpy/user/basics.types.html 파이썬 버전 3.7 기준NumPy 버전 1.15 기준 본 포스팅에선 NumPy의 주요 자료형인 정수(int), 부호없는 정수(uint), 실수(float), 복소수(complex), 논리(bool
kongdols-room.tistory.com
** float64 예시

# 수치 미분 시 float64를 사용하는 이유
1. 수치 안정성: 수치 미분은 종종 아주 작은 값 (예: )으로 함수의 변화를 근사하므로, 높은 정밀도가 필요합니다. 만약 float32와 같은 낮은 정밀도로 수치 미분을 계산하면, 연산 중에 발생하는 작은 오차가 누적되어 결과의 정확도를 크게 떨어뜨릴 수 있습니다.
2. 오차 축소: float64를 사용하면 계산 오차가 줄어들므로, 미분 결과가 더 정확해집니다. 이는 특히 연속적인 미분이나 복잡한 함수에서 중요합니다.
3. 높은 정밀도 요구 사항: 일부 애플리케이션에서는 높은 정밀도의 미분 결과가 필요합니다. 예를 들어, 과학 연구나 공학 설계에서는 높은 정밀도의 미분 값을 요구할 때가 있습니다.
모든 미분 연산에 float64가 필요한 것은 아니며, 많은 딥러닝 프레임워크는 기본적으로 float32를 사용하며, 자동 미분(autodifferentiation) 기법을 사용하여 미분값을 효율적이고 정확하게 계산합니다.
따라서, float64를 사용해야 할지 여부는 특정 문제와 요구 사항에 따라 달라집니다. 수치 미분을 사용하는 경우, 또는 높은 정밀도가 필요한 경우에 float64를 고려할 수 있습니다. 그렇지 않으면 float32나 다른 정밀도로도 충분한 경우가 많습니다.
'Study 공부할레나' 카테고리의 다른 글
| [스터디/밑시딥3] 제 1고지 미분 자동 계산_6.수동 역전파 (0) | 2023.08.13 |
|---|---|
| [스터디/밑시딥3] 제 1고지 미분 자동 계산_5.역전파 이론 (0) | 2023.08.13 |
| [스터디/밑시딥3] 제 1고지 미분 자동 계산_4.수치 미분 (0) | 2023.08.12 |
| [스터디/밑시딥3] 제 1고지 미분 자동 계산_3.함수 연결 (0) | 2023.08.12 |
| [스터디/밑시딥3] 제 1고지 미분 자동 계산_2.변수를 낳는 함수 (0) | 2023.08.12 |