이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

tf.train.Checkpoint

참조 박을

TensorFlow 1 개 버전 GitHub의에서 소스보기

그룹 저장하고 복원 객체를 추적 가능.

전자 필기장에서 사용

가이드에서 사용 튜토리얼에서 사용

Checkpoint 의 생성자는 그 값이 같은 추적 가능한 상태를 포함하는 유형이다 키워드 인자 수용 tf.keras.optimizers.Optimizer 구현 tf.Variable S, tf.data.Dataset 반복자 tf.keras.Layer 구현 또는 tf.keras.Model 구현. 그것은 체크 포인트와 함께이 값을 저장하고 유지 save_counter 체크 포인트 번호에 대한합니다.

사용 예제 :

 import tensorflow as tf
import os

checkpoint_directory = "/tmp/training_checkpoints"
checkpoint_prefix = os.path.join(checkpoint_directory, "ckpt")

# Create a Checkpoint that will manage two objects with trackable state,
# one we name "optimizer" and the other we name "model".
checkpoint = tf.train.Checkpoint(optimizer=optimizer, model=model)
status = checkpoint.restore(tf.train.latest_checkpoint(checkpoint_directory))
for _ in range(num_training_steps):
  optimizer.minimize( ... )  # Variables will be restored on creation.
status.assert_consumed()  # Optional sanity checks.
checkpoint.save(file_prefix=checkpoint_prefix)
 

Checkpoint.save()Checkpoint.restore() TensorFlow 1.x에서의 대조적으로 읽고 쓰기 오브젝트 기반 검문소 tf.compat.v1.train.Saver 기록 및 판독 variable.name 기반 체크 포인트. 객체 기반 검사 점은 파이썬 객체 간의 종속성 (그래프 저장 Layer 의, Optimizer 의, Variable 라는 이름의 가장자리의 등),이 그래프는 체크 포인트를 복원 할 때 변수를 일치시키는 데 사용된다. 그것은 파이썬 프로그램의 변화에보다 강력한, 그리고 지원 복구-에 만들 변수로 할 수 있습니다.

Checkpoint 객체는 생성자에 키워드 인자로 전달 된 객체에 대한 종속성을 가지고 있고, 각 종속 관계는이 생성 된 키워드 인수의 이름과 동일 이름을 부여한다. 같은 TensorFlow 클래스 Layer 의 및 Optimizer 의 자동 자신의 변수 (예 : "커널"을위한 "편견"에 대한 종속성을 추가합니다 tf.keras.layers.Dense ). 에서 상속 tf.keras.Model 때문에, 사용자 정의 클래스에 쉽게 의존성을 관리 할 수 있습니다 Model 속성 할당에 후크. 예를 들면 :

 class Regress(tf.keras.Model):

  def __init__(self):
    super(Regress, self).__init__()
    self.input_transform = tf.keras.layers.Dense(10)
    # ...

  def call(self, inputs):
    x = self.input_transform(inputs)
    # ...
 

Model 자사의 "input_transform"라는 이름의 의존성이 Dense 차례의 변수에 따라 레이어를. 인스턴스 절약 결과, Regress 사용 tf.train.Checkpoint 또한 만든이 모든 변수에 저장한다 Dense 층.

변수가 여러 노동자에 할당하면 각 작업자는 체크 포인트의 자신의 부분을 기록합니다. 이 섹션은 / 하나의 체크 포인트로 동작하도록 다시는 인덱스 병합됩니다. 이것은 하나의 작업자에 모든 변수를 복사 피할 수 있지만, 모든 노동자가 공통 파일 시스템을 참조 할 것을 요구 않습니다.

하지만 tf.keras.Model.save_weightstf.train.Checkpoint.save 같은 형식으로 저장, 노트는 결과 체크 포인트의 루트 저장 방법가 부착 된 객체입니다. 구원이 수단 tf.keras.Model 사용 save_weights 에 로딩을 tf.train.Checkpoint A를 Model 부착 (또는 그는 반대)가 일치하지 않습니다 Model 의 변수를. 참고 항목 체크 포인트를 훈련에 가이드 자세한 내용은. 선호 tf.train.Checkpoint 통해 tf.keras.Model.save_weights 교육 체크 포인트합니다.

**kwargs 키워드 인수는이 객체의 속성으로 설정하고, 체크 포인트와 함께 저장됩니다. 값은 추적 가능한 오브젝트해야합니다.

ValueError 에서 개체 경우 kwargs 추적이되지 않습니다.

save_counter 때 증가 save() 라고합니다. 번호 체크 포인트로 사용됩니다.

행동 양식

read

소스보기

작성 훈련 체크 포인트 읽기 write .

이 읽어 Checkpoint 과에 따라 달라 어떤 개체가.

이 방법은 단지처럼 restore() 하지만 기대하지 않는 save_counter 검사 점에서 변수를. 그것은 단지 체크 포인트가 이미에 의존하는 개체를 복원합니다.

이 방법은 주로 높은 수준의 체크 포인트 관리 유틸리티에서 사용하기위한 사용이됩니다 write() 대신 save() 및 번호와 트랙 체크 포인트에 자신의 메커니즘을 가지고있다.

사용 예제 :

 # Create a checkpoint with write()
ckpt = tf.train.Checkpoint(v=tf.Variable(1.))
path = ckpt.write('/tmp/my_checkpoint')

# Later, load the checkpoint with read()
# With restore() assert_consumed() would have failed.
checkpoint.read(path).assert_consumed()

# You can also pass options to restore(). For example this
# runs the IO ops on the localhost:
options = tf.CheckpointOptions(experimental_io_device="/job:localhost")
checkpoint.read(path, options=options)
 

인수
save_path 체크 포인트의 경로는에 의해 반환 write .
options 옵션 tf.train.CheckpointOptions 객체.

보고
체크 포인트 회복의 상태에 대한 주장을하는 데 사용할 수있는 부하 상태 객체. 참조 restore 자세한 내용은.

restore

소스보기

훈련 체크 포인트를 복원합니다.

복원이 Checkpoint 와가에 따라 물건.

이 방법에 의해 생성 된로드 체크 포인트를 사용하도록되어 save() . 만든 체크 포인트를 들어 write() 를 사용하면 read() 기대하지 않는 방법 save_counter 추가 변수 save() .

restore() 변수가 이미 생성하거나 연기 복원 된 복원하는 경우 어느 양수인 값은 바로 변수가 생성 될 때까지. 그들은 (예상 종속성을 추가 할 수 있도록 복원 요청이있는 추적 가능한 객체 대기에서 큐에) 체크 포인트에 해당하는 객체가있는 경우이 호출 후에 추가 종속성이 일치됩니다.

그로드가 완료 보장하기 위해 더 이상 할당은 사용 장소를 취할 것 assert_consumed() 에 의해 반환 된 상태 개체의 방법 restore() :

 checkpoint = tf.train.Checkpoint( ... )
checkpoint.restore(path).assert_consumed()

# You can additionally pass options to restore():
options = tf.CheckpointOptions(experimental_io_device="/job:localhost")
checkpoint.restore(path, options=options).assert_consumed()
 

파이썬 검사 점은 어떤 값이 일치 파이썬 오브젝트가없는 경우, 검사에서 발견되지 않은 또는 종속성 그래프의 개체 경우, 예외가 발생한다.

이름 기반 tf.compat.v1.train.Saver TensorFlow 1.x에서의 체크 포인트는이 방법을 사용하여로드 할 수 있습니다. 이름은 변수를 일치시키는 데 사용된다. 사용하여 재 인코딩 이름 기반 체크 포인트 tf.train.Checkpoint.save 가능한 한 빨리.

인수
save_path 체크 포인트의 경로는, 같은 의해 반환 save 또는 tf.train.latest_checkpoint . 체크 포인트는 이름 기반에 의해 작성되었습니다 경우 tf.compat.v1.train.Saver , 이름이 변수를 일치시키는 데 사용된다.
options 옵션 tf.train.CheckpointOptions 객체.

보고
체크 포인트 회복의 상태에 대한 주장을하는 데 사용할 수있는 부하 상태 객체.

반환 된 상태 객체는 다음과 같은 방법이 있습니다 :

  • assert_consumed() :시킵니다 예외는 임의의 변수를 비교할 경우 다음 매칭 파이썬 개체가 파이썬 체크 포인트 없음 값 종속성 그래프의 개체 않는 두 체크 포인트 값. 이 방법은 상태 객체를 반환하고, 그래서 다른 주장과 체인 될 수 있습니다.

  • assert_existing_objects_matched() : 기존 파이썬 비교할 수있다 종속성 그래프의 개체 경우 예외가 발생. 달리 assert_consumed ,이 주장은 체크 포인트의 값이 더 파이썬 대응 한 것은 객체없는 경우 전달합니다. 예를 들어, tf.keras.Layer 아직 구축되지 않았으며, 그래서 어떤 변수를 생성하지 않은 객체는이 주장을 통과하지만 실패 assert_consumed . 유용한 새로운 파이썬 프로그램에 큰 체크 포인트의 로딩 부분은 A를 예를 들면 교육 체크 포인트 때 tf.compat.v1.train.Optimizer 저장된 그러나 추론에 필요한 상태 만이로드되고있다. 이 방법은 상태 객체를 반환하고, 그래서 다른 주장과 체인 될 수 있습니다.

  • assert_nontrivial_match() : 루트 개체에서 옆으로 뭔가 일치 된 주장한다. 이것은 매우 약한 주장하지만, 객체가 검사 점 값을 가질 수 파이썬과 일부 파이썬 객체에서 생성되지 않은 체크 포인트에 존재할 수있는 라이브러리 코드에서 정신 검사에 유용합니다.

  • expect_partial() : 불완전한 검사 점 복원에 대한 침묵의 경고. 때 경고 그렇지 않으면 검사 점 파일 또는 객체의 사용하지 않는 부분에 대한 인쇄 Checkpoint 객체 (종종 프로그램 종료시) 삭제됩니다.

save

소스보기

훈련 체크 포인트를 저장하고 기본 체크 포인트 관리 기능을 제공합니다.

저장된 체크 포인트는이 객체에 의해 생성 된 변수를 포함하고 추적 가능한 그것이 시간에 따라 객체 Checkpoint.save() 호출된다.

save 주위에 기본적인 편의 래퍼 write 순차적 검문소 넘버링 사용 방법 save_counter 에 의해 사용되는 메타 데이터를 업데이트 tf.train.latest_checkpoint . 보다 진보 된 체크 포인트 관리는, 예를 들어 쓰레기 수집 및 사용자 지정 번호에 대해, 또한 포장 다른 유틸리티에 의해 제공 될 수있다 writeread . ( tf.train.CheckpointManager 예).

 step = tf.Variable(0, name="step")
checkpoint = tf.Checkpoint(step=step)
checkpoint.save("/tmp/ckpt")

# Later, read the checkpoint with restore()
checkpoint.restore("/tmp/ckpt").assert_consumed()

# You can also pass options to save() and restore(). For example this
# runs the IO ops on the localhost:
options = tf.CheckpointOptions(experimental_io_device="/job:localhost")
checkpoint.save("/tmp/ckpt", options=options)

# Later, read the checkpoint with restore()
checkpoint.restore("/tmp/ckpt", options=options).assert_consumed()
 

인수
file_prefix 접두사는 검사 점 파일 이름에 사용할 (/ 경로 /로 / 디렉토리 / and_a_prefix). 이름이 접두사를 기반으로 생성됩니다 Checkpoint.save_counter .
options 옵션 tf.train.CheckpointOptions 객체.

보고
체크 포인트의 전체 경로.

write

소스보기

훈련 체크 포인트를 기록합니다.

체크 포인트는 객체가 생성 변수를 포함하고 추적 가능한는 시간에 의존하는 오브젝트 Checkpoint.write() 호출된다.

write 없는 번호 체크 포인트, 증가하지 save_counter , 또는에 의해 사용되는 메타 데이터 업데이트 tf.train.latest_checkpoint . 그것은 주로 높은 수준의 체크 포인트 관리 유틸리티 사용하기위한 것입니다. save 이러한 기능의 아주 기본적인 구현을 제공합니다.

작성 체크 포인트 write 읽을 수 있어야합니다 read .

사용 예제 :

 step = tf.Variable(0, name="step")
checkpoint = tf.Checkpoint(step=step)
checkpoint.write("/tmp/ckpt")

# Later, read the checkpoint with read()
checkpoint.read("/tmp/ckpt").assert_consumed()

# You can also pass options to write() and read(). For example this
# runs the IO ops on the localhost:
options = tf.CheckpointOptions(experimental_io_device="/job:localhost")
checkpoint.write("/tmp/ckpt", options=options)

# Later, read the checkpoint with read()
checkpoint.read("/tmp/ckpt", options=options).assert_consumed()
 

인수
file_prefix 접두사는 검사 점 파일 이름에 사용할 (/ 경로 /로 / 디렉토리 / and_a_prefix).
options 옵션 tf.train.CheckpointOptions 객체.

보고
체크 포인트의 전체 경로 (예 : file_prefix ).