tensorflow2x
tensorflow (version 2.x)
ν
μνλ‘ 2.xμ μ΄ν΄
: ν μνλ‘ 2.xλ μΌλΌμ€(keras)μ κ°μ νμ΄ λ 벨 APIλ₯Ό μ¬μ©ν κ²μ κΆμ₯νλ©°, λ΄λΆμ μΈλΆμ 보λ₯Ό λ λ§μ΄ μ μ΄ν΄μΌ νλ κ²½μ° ν μνλ‘€ 1.xμΈ λ‘μ°λ 벨 APIλ₯Ό κ·Έλλ‘ μ μ§νλ€
μ¦μ μ€ν (eager execution)
: ν μ νλ‘ 2.xμ ν μνλ‘ 1.xμ μ μ κ³μ° κ·Έλνλ₯Ό μ μνκ²κ³Ό λ€λ₯΄κ², νΉλ³ν μΈμ μΈν°νμ΄μ€λ νλ μ΄μ€ νλ μ μ΄λ λ Έλλ₯Ό μ¦μ μ μ, λ³κ²½, μ€νν μ μμΌλ©°, μ΄κ²μ΄ λ°λ‘ μ¦μ μ€νμ΄λ€ . μ¦, λͺ¨λΈ μ μκ° λμ μ΄κ³ μ€νμ΄ μ¦μ μ΄λ€μ§λ€, κ·Έλνμ μΈμ μ ꡬν μΈλΆ μ¬νμΌλ‘ κ³ λ €ν΄μΌ νλ€
μ€ν κ·Έλν(AutoGraph)
: ν μ νλ‘ 2.xμ κΈ°λ³Έμ μΌλ‘ if-while, print()κ³Ό κ°μ΄ κΈ°λ³Έ νΉμ§κ³Ό κ°μ μ μ΄νλ¦μ ν¬ν¨ν΄ λͺ λ Ήν νμ΄μ¬ μ½λλ₯Ό μ§μνμ¬, ν¬λͺ νκ³ μλμ μ΄λ©° μ¦μ μ€ν νμ΄μ¬ νμ νλ‘κ·Έλλ°κ³Ό ν¨μ¨μ μΈ κ·Έλν κ³μ°μ ν΅ν΄ λμΈκ³λ₯Ό λͺ¨λ νμ©νλ μ°κ²°κ³ 리λ₯Ό λ§λ λ€
μ€ν κ·Έλν μ¬μ©λ°©λ²
: νμ΄μ¬ μ½λμ νΉμ λ°μ½λ μ΄ν°(decorator) tf.functionμ μ΄λ Έλ°μ΄μ (annotation)μ²λΌ μ¨μ£ΌκΈ°λ§ νλ©΄λλ€.
simple_nnμ μ΄ν΄λ³΄λ©΄ ν μνλ‘ λ΄λΆμ μνΈμμ©νλ νΉμ νΈλ€λΌλ κ²μ μμ μμΌλ©°, simple_functionμ μΌλ° νμ΄μ¬ νΈλ€λ¬λ€.
tf.functionμ μ¬μ©ν κ²½μ° νλμ μ£Ό ν¨μμλ§ μ΄λ Έν μ΄μ μ λ¬λ©΄ κ±°κΈ°μμ νΈμΆλ λ€λ₯Έ λͺ¨λ ν¨μλ μλμΌλ‘ ν¬λͺ νκ² μ΅μ νλ κ³μ° κ·Έλνλ‘ λ³νλλ€
μΌλΌμ€ API : 3κ°μ§ νλ‘κ·Έλλ° λͺ¨λΈ
μΌλΌμ€λ μμ°¨μ API, ν¨μμ API, λͺ¨λΈ μλΈν΄λμ±μ μΈκ°μ§ νλ‘κ·Έλλ° λͺ¨λΈκ³Ό ν¨κ» λ νμ΄λ 벨 APIλ₯Ό μ 곡νλ€
μμ°¨μ (Sequentail) API
μμ°¨μ APIλ 90%μ μ¬λ‘μ μ ν©ν λ§€μ° μ°μνκ³ μ§κ΄μ μ΄λ©° κ°κ²°ν λͺ¨λΈμ΄λ€.
ν¨μμ (function) API
ν¨μμ APIλ λ€μ€ μ λ ₯, λ€μ€ μΆλ ₯, λΉμμ°¨ νλ¦κ³Όμ μμ‘΄ μ°κ²°, 곡μ , μ¬μ¬μ© κ°λ₯ κ³μΈ΅μ ν¬ν¨ν΄ μ’λ 볡μ‘ν(λΉμ ν) μμ(topology)μΌλ‘ λͺ¨λΈμ ꡬμΆνλ €λ κ²½μ° μ μ©νλ€
κ° κ³μΈ΅μ νΈμΆ κ°λ₯νκ³ (μ λ ₯μ ν μ) κ° κ³μΈ΅μ ν μλ₯Ό μΆλ ₯μΌλ‘ λ°ννλ€.
λκ°μ κ°λ³ μ λ ₯, λ κ°μ κ°λ³ λ‘μ§μ€ν± νκ·λ₯Ό μΆλ ₯μΌλ‘, νλμ 곡μ λͺ¨λμ μ€κ°μ κ°λ μμ
λΉμ ν μμμ μ
λͺ¨λΈ μλΈν΄λμ±
λͺ¨λΈ μλΈν΄λμ±μ μ΅κ³ μ μ μ°μ±μ μ 곡νλ©° μΌλ°μ μΌλ‘ μμ μ κ³μΈ΅μ μ μν΄μΌ ν λ μ¬μ©. λΉμ νμλ©΄ νμ€μ μ΄κ³ μ μλ €μ§ λ κ³ λΈλ‘μ ꡬμ±νλ λμ μμ λ§μ λ κ³ λΈλ‘μ λ§λ€κ³ μ ν λ μ μ©
init : μ νμ μΌλ‘ μ΄ κ³μΈ΅μμ μ¬μ©ν λͺ¨λ νμ κ³μΈ΅μ μ μνλλ° μ¬μ©, λͺ¨λΈ μ μΈμ ν λλ μμ±μλ€
build : κ²μΈ΅μ κ°μ€μΉλ₯Ό μμ±ν λ μ¬μ©, dd_weight()λ‘ κ°μ€μΉλ₯Ό μΆκ° ν μ μλ€
call : μλ°ν₯ μ λ¬ μ μ, κ³μΈ΅μ΄ νΈμΆλκ³ ν¨μ νμμΌλ‘ 체μΈλλ κ³³μ΄λ€
μ νμ μΌλ‘ get_config()λ₯Ό μ¬μ©ν΄ κ²μΈ΅μ μ§λ ¬ν(serialize)ν μ μκ³ , from_config()λ₯Ό μ¬μ©νλ©΄ μμ§λ ¬ν(deserialize)ν μ μλ€
μ½λ°± (callback)
: μ½λ°±μ νλ ¨ μ€μ λ μμ νμ₯νκ±°λ μμ νκ³ μ λͺ¨λΈλ‘ μ λ¬νλ κ°μ²΄
ModelCheckPoint : μ κΈ°μ μΌλ‘ λͺ¨λΈμ μ²΄ν¬ ν¬μΈνΈλ₯Ό μ μ₯νκ³ λ¬Έμ κ° λ°μν λ 볡ꡬνλλ° μ¬μ©
LearningRateScheduler : μ΅μ ννλ λμ νμ΅λ₯ μ λμ μΌλ‘ λ³κ²½ν λ μ¬μ©
EarlyStopping : κ²μ¦ μ±λ₯μ΄ νλμ κ°μ λμ§ μμ κ²½μ° νλ ¨μ μ€λ¨ν λ μ¬μ©
TensorBoard : ν μ보λλ₯Ό μ¬μ©ν΄ λͺ¨λΈμ νλμ λͺ¨λν°λ§ν λ μ¬μ©
λͺ¨λΈκ³Ό κ°μ€μΉ μ μ₯
κ°μ€μΉλ₯Ό ν μνλ‘ μ²΄ν¬ν¬μΈνΈ νμΌλ‘ μ μ₯
κ°μ€μΉ μ΄μΈμ λͺ¨λΈμ JSON νμμΌλ‘ μ§λ ¬ν ν μ μλ€
YAMLμΌλ‘ μ§λ ¬ν
λͺ¨λΈμ κ°μ€μΉμ μ΅μ ν λ§€κ°λ³μμ ν¨κ» μ μ₯
λ°μ΄ν°μ
λΌμ΄λΈλ¬λ¦¬
μμ±
from_tensor_slices() : κ°λ³(λλ λ€μ€) λνμ΄(λλ ν μ)λ₯Ό λ°κ³ λ°°μΉλ₯Ό μ§μ
from_tensor() : 1κ³Ό μ μ¬νμ§λ§ λ°°μΉλ₯Ό μ§μνμ§ μλλ€
from_generator() : μμ±μ ν¨μμμ μ λ ₯μ μ·¨νλ€
λ³ν
batch() : μμ°¨μ μΌλ‘ λ°μ΄ν°μ μ μ§μ ν ν¬κΈ°λ‘ λΆν
repeat() : λ°μ΄ν°λ₯Ό 볡μ
shuffle() : λ°μ΄ν°λ₯Ό 무μμλ‘ μλλ€
map() : λ°μ΄ν°μ ν¨μλ₯Ό μ μ©
filter() : λ°μ΄ν°λ₯Ό κ±°λ₯΄κ³ μ ν¨μλ₯Ό μ μ
λ°λ³΅
next_batch = iterator.get_next()
Last updated
Was this helpful?