- ν
μ(tensor) : λ°μ΄ν°λ₯Ό μ μ₯νλ λ€μ°¨μ λνμ΄ λ°°μ΄, λͺ¨λ λ¨Έμ λ¬λ μμ€ν
μ ν
μλ₯Ό κΈ°λ³Έ λ°μ΄ν° κ΅¬μ‘°λ‘ μ¬μ©
- λ°μ΄ν°λ₯Ό μν 컨ν μ΄λ(Container)
- μμμ μ°¨μ κ°μλ₯Ό κ°μ§λ νλ ¬μ μΌλ°νλ λͺ¨μ΅
- νλμ μ«μλ§ λ΄κ³ μλ ν μ
- μ€μΉΌλΌ ν μ, 0μ°¨μ ν μ, 0D ν μλΌκ³ λ λΆλ¦Ό
- ndim μμ±μ μ¬μ©νλ©΄ λνμ΄ λ°°μ΄μ μΆ κ°μ νμΈμ΄ κ°λ₯
import numpy as np
x = np.array(12)
x.ndim
- μ«μμ λ°°μ΄μ λ²‘ν° λλ 1D ν μλΌ λΆλ¦
- 1D ν μλ νλμ μΆμ κ°μ§
import numpy as np
x = np.array([12, 3, 6])
x.ndim
- 벑ν°μ ν
μμ ννμ νΌλμ μ‘°μ¬
- 5D 벑ν°: νλμ μΆμ λ°λΌ 5κ°μ μ°¨μμ κ°μ§ κ²
- 5D ν μ: 5κ°μ μΆμ κ°μ§ κ²
- 벑ν°μ λ°°μ΄μ΄ νλ ¬(matrix) λλ 2D ν μ
import numpy as np
x = np.array([12, 3, 6],
[2, 13, 9],
[4, 1, 6])
x.ndim
import numpy as np
x = np.array([
[[12, 3, 6],
[2, 13, 9],
[4, 1, 6]],
[[2, 1, 3],
[12, 23, 19],
[4, 12, 8]]
])
x.ndim
- λ₯λ¬λμμλ λ³΄ν΅ 0Dμμ 4D κΉμ§μ ν μλ₯Ό λ€λ£Έ
- μΆμ κ°μ(λν¬) : μλ‘ 3D ν μμλ 3κ°μ μΆμ΄ μ‘΄μ¬, λνμ΄ λΌμ΄λΈλ¬λ¦¬μ ndim μμ±μ ν΅ν΄ νμΈ κ°λ₯
- ν¬κΈ°(shape) : ν μμ κ° μΆμ λ°λΌ μΌλ§λ λ§μ μ°¨μμ΄ μλμ§λ₯Ό λνλΈ νμ΄μ¬μ νν
- λ°μ΄ν° νμ
: ν
μμ ν¬ν¨λ λ°μ΄ν°μ νμ
- ex] float32, uint8, float64 ...
- λλ¬Όκ² char νμ μ μ¬μ©νκΈ°λ ν¨
- λ°°μ΄μ μλ νΉμ μμλ€μ μ ννλ κ²μ μ¬λΌμ΄μ±(slicing) μ΄λΌ ν¨
- λ²‘ν° λ°μ΄ν°: (samples, features) ν¬κΈ°μ 2D ν μ
- μκ³μ΄ λ°μ΄ν° λλ μνμ€(sequence) λ°μ΄ν°: (samples, timesteps, features) ν¬κΈ°μ 3D ν μ
- μ΄λ―Έμ§ λ°μ΄ν°: (samples, height, width, channels) λλ (samples, channels, height, width) ν¬κΈ°μ 4D λ°μ΄ν°
- λμμ λ°μ΄ν°: (samples, frames, height, width, channels) λλ (samples, frames, channels, height, width) ν¬κΈ°μ 5D ν μ
- 첫λ²μ§Έ μΆ: μν μΆ
- λλ²μ§Έ μΆ: νΉμ± μΆ(feature axis)
- ex] λμ΄, λ²νΈ, μλμΌλ‘ ꡬμ±λ μΈκ΅¬ ν΅κ³ λ°μ΄ν°μ κ²½μ° κ° μ¬λμ 3κ°μ κ°μ κ°μ§ 벑ν°λ‘ ꡬμ±λκ³ 10λ§ λͺ μ΄ ν¬ν¨λ μ 체 λ°μ΄ν°μ μ (100000, 3) ν¬κΈ°μ ν μμ μ μ₯
- λ°μ΄ν°μμ μκ°(λλ μ°μλ μμ)μ΄ μ€μν λλ μκ° μΆμ ν¬ν¨ν 3D ν μλ‘ μ μ₯
- κ΄λ‘μ μΌλ‘ μκ° μΆμ νμ λ λ²μ§Έ μΆ
- ex] 1λΆλ§λ€ 'νμ¬ μ£Όμ κ°κ²©', '1λΆ λμ μ΅κ³ κ°κ²©', '1λΆ λμ μ΅μ κ°κ²©'μ μ μ₯. 1λΆλ§λ€ λ°μ΄ν°λ 3D벑ν°λ‘ μΈμ½λ©λκ³ ν루 λμμ κ±°λλ (390, 3) ν¬κΈ°μ 2D ν μλ‘ μΈμ½λ©(ν루 κ±°λ μκ° 390λΆ), 250μΌμΉμ λ°μ΄ν°λ (250, 390, 3) ν¬κΈ°μ 3D ν μλ‘ μ μ₯
- μ΄λ―Έμ§λ 'λμ΄', 'λλΉ', 'μ»¬λ¬ μ±λ'μ 3μ°¨μμΌλ‘ μ΄λ€μ§
- νλ°± μ΄λ―Έμ§μ κ²½μ° μ±λ μ°¨μμ ν¬κΈ°λ 1λ‘ 256x256 ν¬κΈ°μ νλ°± μ΄λ―Έμ§ 128κ°λ (128, 256, 256, 1) ν¬κΈ°μ ν μμ μ μ₯
-
μ κ²½λ§ νλ ¨μ μμ
- λ€νΈμν¬(λλ λͺ¨λΈ) μ ꡬμ±νλ μΈ΅
- μ λ ₯ λ°μ΄ν° μ κ·Έμ μμνλ νκΉ
- νμ΅μ μ¬μ©ν νΌλλ°± μ νΈλ₯Ό μ μνλ μμ€ ν¨μ
- νμ΅ μ§ν λ°©μμ κ²°μ νλ μ΅ν°λ§μ΄μ
-
Layer Ex]
- μ°¨μμ΄ 784μΈ 2D ν μλ₯Ό μ λ ₯μΌλ‘ λ°λ μΈ΅ (λ°°μΉ μ°¨μμΈ 0λ²μ§Έ μΆμ μ§μ νμ§ μκΈ° λλ¬Έμ μ΄λ€ λ°°μΉ ν¬κΈ°λ μ λ ₯μΌλ‘ λ°μ μ μμ)
from keras import layers
layer = layers.Dense(32, input_shape=(784,))
- Kerasμμλ λͺ¨λΈμ μΆκ°λ μΈ΅μ μλμΌλ‘ μμ μΈ΅μ ν¬κΈ°μ λ§μΆμ΄ μ£ΌκΈ° λλ¬Έμ νΈνμ±μ κ±±μ νμ§ μμλ λ¨
- Ex] λλ²μ§Έ μΈ΅μλ input_shape λ§€κ°λ³μ μ§μ νμ§ μμ, μμ μΈ΅μ μΆλ ₯ ν¬κΈ°λ₯Ό μ λ ₯ ν¬κΈ°λ‘ μλμΌλ‘ μ±νλκΈ° λλ¬Έ
from keras import models
from keras import layers
model = models.Sequential()
model.add(layers.Dense(32, input_shape=(784,)))
model.add(layers.Dense(10))
-
μμ€ ν¨μ(loss function) λͺ©μ ν¨μ(objective function) : νλ ¨νλ λμ μ΅μνλ κ°, μ£Όμ΄μ§ λ¬Έμ μ λν μ±κ³΅ μ§ν
-
μ΅ν°λ§μ΄μ (optimizer) : μμ€ ν¨μλ₯Ό κΈ°λ°μΌλ‘ λ€νΈμν¬κ° μ΄λ»κ² μ λ°μ΄νΈ λ μ§ κ²°μ , νΉμ μ’ λ₯μ νλ₯ μ κ²½μ¬ νκ°λ²(SGD)λ₯Ό ꡬν
-
μ¬λ¬ κ°μ μΆλ ₯μ λ΄λ μ κ²½λ§μ μ¬λ¬ κ°μ μμ€ ν¨μλ₯Ό κ°μ§(μΆλ ₯λΉ νλμ©)
- But κ²½μ¬ νκ°λ² κ³Όμ μ νλμ μ€μΉΌλΌ μμ€ κ°μ κΈ°μ€μΌλ‘ ν¨
- μμ€μ΄ μ¬λ¬ κ°μΈ λ€νΈμν¬μμλ λͺ¨λ μμ€μ΄ νκ· μ λ΄μ νλμ μ€μΉΌλΌ μμΌλ‘ ν©μ³μ§

