tf.train.Saver()
__init__(
var_list=None,
reshape=False,
sharded=False,
max_to_keep=5,
keep_checkpoint_every_n_hours=10000.0,
name=None,
restore_sequentially=False,
saver_def=None,
builder=None,
defer_build=False,
allow_empty=False,
write_version=tf.train.SaverDef.V2,
pad_step_number=False,
save_relative_paths=False,
filename=None
)
var_list가 None이면 저장 가능한 모든 Variable과 Object를 저장한다.
tf.global_variables
Variable()
이나 get_variable
로 선언된 모든 변수 리스트를 return한다.
tf.train.get_checkpoint_state()
Args:
checkpoint_dir: The directory of checkpoints.
latest_filename: Optional name of the checkpoint file. Default to 'checkpoint'.
CheckpointState를 return한다.
CheckpointState는 에는 두가지 정보가 담겨있다.
- model_checkpoint_path : 가장 최근에 저장된 job.ckpt 파일의 path 정보
- all_model_checkpoint_paths : 최근에 저장된 job_i.ckpt 파일들의 path 정보 list
tf.keras.backend.clear_session()
위 함수는 tf.Session이나 tf.InteractiveSession이 활성화 되어있을 때 호출하면 안된다.
colab에서 tensorboard 간편하게 사용하는 방법
%load_ext tensorboard
%tensorboard –logdir logs
tensorflow paddding
padding = ‘SAME’ : output_spacial_shape[i] = ceil(input_spatial_shape[i] / strides[i])
padding = ‘VALID’ : output_spatial_shape[i] = ceil((input_spatial_shape[i] - (spatial_filter_shape[i]-1) * dilation_rate[i]) / strides[i])
패딩을 추가하지 않는다. 따라서 윈도우가 움직이다가 남은 입력의 일부분이 윈도우 보다 작으면 해당 부분을 버린다.
(ceil : 올림)
unhashable type: ‘numpy.ndarray’ error in tensorflow
placeholder 변수의 이름과 input 변수의 이름이 같을 때 위의 에러가 발생한다.
모델 불러오기
tf.train.import_meta_graph : meta graph를 불러와서 graph(network)를 재생성한다.
meta graph : tensorflow graph 정보 (모든 variables, operations 등을 저장하고 있음)
그런데 saver = tf.train.import_meta_graph('my_test_model-1000.meta')
이렇게 호출하면 이 코드 이전에 정의된 graph에 my_test_model-1000.meta에 저장되어 있는 graph가 이어 붙는 방식으로 동작한다. 따라서 tf.train.import_meta_graph 함수 호출 전에 tf.reset_default_graph()를 호출해서 graph를 초기화 해주는 것이 좋다.
graph에 이전에 저장된 변수 값들을 복구하기 위해서 tf.train.import_meta_graph 호출 이후에 saver.restore(sess, tf.train.lastest_checkpoint('./'))
를 호출한다.