tensorflow1x
tensorflow (version 1.x)
ν
μνλ‘ 1.xμ μ΄ν΄
ν
μνλ‘ 1.x κ³μ° κ·Έλν(computational graph) ꡬ쑰
κ³μ°κ·Έλν
: κ³μ° κ·Έλνλ λ Έλ(node) μ μμ§(edge)λ₯Ό κ°μ§ λ€νΈμν¬μ΄λ€. μ¬κΈ°μμ μ¬μ©ν λͺ¨λ λ°μ΄ν°, μ¦ ν μ κ°μ²΄(μμ, λ³μ, νλ μ΄μ€νλ(placeholder))μ μμ΅ν λͺ¨λ κ³μ° μ¦μ°μ κ°μ²΄κ° μ μ λλ€.
νλ μ΄μ€νλ(placeholder)λ λ¨μν λμ€μ λ°μ΄ν°λ₯Ό ν λΉνκ· μν λ³μ. μ΄λ₯Ό μ¬μ©νλ©΄ λ°μ΄ν° μμ΄λ κ³μ° κ·Έλνλ₯Ό μμ±ν μ μλ€
κ° λ Έλλ 0κ° μ΄μ¬μ μ λ ₯μ κ°μ§ μ μμ§λ§ νλμ μΆλ ₯λ§ μμ§ μ μλ€. λ€νΈμν¬μ λ Έλλ κ°μ²΄(ν μ(tensor)μ μ°μ°(operations))λ₯Ό λνλ΄κ³ μμ§λ μ°μ° κ°μ νλ₯΄λ ν μλ₯Ό λνλΈλ€. κ³μ° κ·Έλνλ μ κ²½λ§μ μ²μ¬μ§μ μ μνμ§λ§ κ·Έμμ ν μμλ μμ§ μ°κ³λ κ°μ΄ μλ€.
κ·Έλνμ μ€ν
κ·Έλνμ μ€νμ ν μμ μ°μ° κ°μ²΄κ° νκ°λλ νκ²½μ μΊ‘μννλ μΈμ (session) κ°μ²΄λ₯Ό μ¬μ©ν΄ μνλλ€. μΈμ κ°μ²΄λ ν κ³μΈ΅μμ λ€λ₯Έ κ²μΈ΅μΌλ‘ μ 보μ μ€μ κ³μ°κ³Ό μ μ‘μ΄ μ΄λ€μ§λ κ³³μ΄λ€. λ€λ₯Έ ν μ κ°μ²΄μ κ°μ μΈμ κ°μ²΄μμλ§ μ΄κΈ°ν, μ κ·Ό, μ μ₯λλ€. μ΄ μμ κΉμ§ ν μ κ°μ²΄λ μΆμμ μΈ μ μ λΆκ³Ό
κ·Έλνλ₯Ό μ¬μ©νλ μ΄μ
κ·Έλνλ (μ¬μΈ΅) μ κ²½λ§μ μ€λͺ ν΄ μ€ μ μλ μμ°μ€λ¬μ΄ λΉμ κ° λλ€
κ·Έλνλ κ³΅ν΅ νμ ννμμ μ κ±°νκ³ , 컀λμ ν©μΉκ³ , μ€λ³΅ ννμμ μ κ±°ν΄μ μλμΌλ‘ μ΅μ νν μ μλ€.
κ·Έλνλ νλ ¨ μ€μ μ½κ² λ°°ν¬ν μ μμΌλ©°, CPU,GPU,TPU κ°μ λ€μν νκ²½κ³Ό ν΄λΌμ°λ, IOT, λͺ¨λ°μΌ, κΈ°μ‘΄ μλ² κ°μ λ€μν νκ²½μ λ°°ν¬ν μ μλ€.
κ²°κ΅ ν¨μν νλ‘κ·Έλλ°μ μ΅μνλ€λ©΄ κ³μ° κ·Έλνλ λ¨μ ν리미ν°λΈ(primitives: μ΄κΈ°μ )μ ν©μ±μ΄λΌλ μΌλ°μ μΈ κ°λ μΌ λΏμ΄λ€.
κ³μ° κ·Έλνμ μμ
ν μνλ‘λ₯Ό μ¬μ©νλ©΄ tf.device()λ₯Ό μ¬μ©ν΄ κ³μ° κ·Έλνμ λ€λ₯Έ κ°μ²΄μ ν¨κΌ νΉμ μ₯μΉ(CPU/GPU)λ₯Ό μ¬μ©ν μ μλ€.
μ΄ λͺ λ Ήμ fetches λ§€κ°λ³μμμ ν μλ₯Ό κ³μ°νλ€. μμ μμλ fetchesμ v_addν μκ° μλ€. run λ©μλλ v_addλ‘ μ΄μ΄μ§λ κ·Έλν λ΄μ λͺ¨λ ν μμ μ°μ°μ μ€ννλ€.
fetchesλ λ¨μΌ ν μλ μ°μ° κ°μ²΄ νΉμ λ μ΄μμΌ μ μλ€. μλ₯Ό λ€λ©΄ fetchesκ° [v_1, V_2, V_add]λ₯Ό κ°μ§λ€λ©΄ μΆλ ₯μ [array([1, 2, 3, 4]), array([2, 1, 5, 3]), array([3, 3, 8, 7])] μ΄λ©°, λμΌν νλ‘κ·Έλ¨ μ½λ λ΄μμ λ€μμ μΈμ κ°μ²΄λ₯Ό κ°μ§ μ μλ€.
μμ, λ³μ, νλ μ΄μ€νλμ μμ
: ν μνλ‘λ κ°λ¨ν λ§ν΄ λ€μν μν μ°μ°μ ν μλ‘ μ μνκ³ μννλ λΌμ΄λΈλ¬λ¦¬λ₯Ό μ 곡νλκ²μ΄λ©°, ν μλ κΈ°λ³Έμ μΌλ‘ nμ°¨μ λ°°μ΄μ΄λ€. λͺ¨λ μ νμ λ°μ΄ν°, μ¦ μ€μΉΌλΌ, 벑ν°, νλ ¬μ νΉμν ννμ ν μμ΄λ€.
λ°μ΄ν° νμ
ν μ
νν
μ€μΉΌλΌ
0μ°¨μ ν μ
[]
벑ν°
1μ°¨μ ν μ
[D0]
νλ ¬
2μ°¨μ ν μ
[D0, D1]
ν μ
nμ°¨μ ν μ
[D0, D1, ... , Dn-1]
ν μνλ‘λ 3κ°μ§ μ νμ ν μλ₯Ό μ 곡 1. μμ : μμλ ν μμ΄λ©° κ°μ λ³κ²½ν μ μλ€ 2. λ³μ : μΈμ λ΄μμ κ°μ κ°±μ ν΄μΌ ν λ λ³μ ν μλ₯Ό μ¬μ© 3. νλ μ΄μ€ νλ : ν μνλ‘ κ·Έλνμ κ°μ λ£μ λ μ¬μ©λλ€. λ³΄ν΅ μ κ²½λ§μ νλ ¨μν€λ λμ μλ‘μ΄ νλ ¨ μμλ₯Ό μ 곡νλ λ° μ¬μ©λλ€.
μμ
μ€μΉΌλΌ μμ
λͺ¨λ μμμ κ°μ΄ 0μΈ ν μ : zeros()
λͺ¨λ μμμ κ°μ΄ 1μΈ ν μ : ones()
ν μμ νν νμΈ : shape
κΈ°λ³Έμ λνμ΄ λ°°μ΄ λλ ν μ μμμ λμΌν ννμ ν μ λ³μ
λΈλ‘λμΊμ€νΈ
μνμ€ (sequences)
startλΆν° endκΉμ§ κ· λ±νκ² λΆν¬ν μ 체 numκ°μ μνμ€(Sequences)λ₯Ό μμ±
Start(κΈ°λ³Έμ€μ = 0) λΆν° limit(limitλ ν¬ν¨νμ§ μμ) κΉμ§ delta(κΈ°λ³Έμ€μ = 1)λ§νΌ μ¦κ°νλ©΄μ μνμ€ μλ₯Ό μμ±
λλ€ ν
μ
νκ· μ΄ mean(κΈ°λ³Έμ€μ = 0.0), νμ€νΈμ°¨κ° stddev(κΈ°λ³Έμ€μ = 1.0) μ΄λ©°, ννκ° [M, N]μΈ μ κ· λΆν¬λ₯Ό λ°λ₯΄λ λλ€ κ°μ seedλ₯Ό μ΄μ©ν΄ μμ±
νκ· μ΄ mean(κΈ°λ³Έμ€μ = 0.0), νμ€νΈμ°¨κ° stddev(κΈ°λ³Έμ€μ = 1.0) μ΄λ©°, ννκ° [M, N]μΈ μλ €μ§ μ κ· λΆν¬λ₯Ό λ°λ₯΄λ λλ€ κ°μ seedλ₯Ό μ΄μ©ν΄ μμ±
seedλ₯Ό μ¬μ©ν΄ [minval (κΈ°λ³Έμ€μ = 0), maxval] λ²μμμ ννκ° [M, N]μΈ κ°λ§ λΆν¬λ₯Ό λ°λ₯΄λ λλ€ λ³μ
μ£Όμ΄μ§ ν μλ₯Ό νΉμ ν¬κΈ°λ‘ λλ€μΌλ‘ μ λ¨
νλ ¨ νλ³Έμ λλ€ μμλ‘ λνλΌ νμκ° μμ λλ§λ€ tf.random_stuffle()μ μ¬μ©ν΄ ν μλ₯Ό λ¨λ€μΌλ‘ μ²«λ² μ§Έ μ°¨μ μΆμ λ°λΌ μλλ€. t_randomμ΄ μκ³ μ νλ ν μλΌλ©΄ λ€μκ³ κ°μ΄ νλ€
λλ€μΌλ‘ μμ±ν ν μλ μ΄κΈ° μλ(seed)μ μν₯μ λ°λλ€. μ¬λ¬ λ²μ μ€ν λλ μΈμ μμ λμΌν λμλ₯Ό μ»μΌλ €λ©΄ μλκ° μμλ‘ μ€μ λΌμΌ νλ€. μ¬μ© μ€μΈ λλ€ ν μμ μκ° λ§μ κ²½μ° tf.set_random_seed()λ₯Ό μ¬μ©ν΄ λͺ¨λ λλ€ μμ± ν μμ μλλ₯Ό μ€μ ν μ μλ€
λ³μ : tf.variable
λ³μ μ΄κΈ°ν : initializer
λ³μ μ μ₯ : saver
νλ μ΄μ€νλ
Last updated
Was this helpful?