在此处询问有关何时Redo在 Prolog 中使用新变量调用a或何时尝试使用相同变量的问题后,我想我想通了。然而,在下面的一段代码中,我认为Redo要调用一个额外的代码,但事实并非如此。
我的知识库如下:
location(desk,office).
location(apple,kitchen).
location(flashlight,desk).
location('washing machine',cellar).
location(nani,'washing machine').
location(broccoli,kitchen).
location(crackers,kitchen).
location(computer,office).
edible(apple).
edible(crackers).
Run Code Online (Sandbox Code Playgroud)
我的查询是
?-location(X,kitchen),edible(X).
Run Code Online (Sandbox Code Playgroud)
具有以下跟踪:
Call: (9) location(_5612, kitchen) ? creep
Exit: (9) location(apple, kitchen) ? creep
Call: (9) edible(apple) ? creep
Exit: (9) edible(apple) ? creep
X = apple ;
Redo: (9) location(_5612, kitchen) ? creep <====
Exit: (9) location(broccoli, kitchen) ? creep
Call: (9) edible(broccoli) ? creep
Fail: (9) edible(broccoli) ? creep
Redo: (9) location(_5612, kitchen) ? creep …Run Code Online (Sandbox Code Playgroud) 我最近尝试使用Google的seq2seq来建立一个小型的NMT系统.我设法让一切工作正常,但我仍然想知道时代数和模型训练步数之间的确切差异.
如果我没有弄错的话,一个时期包含多个训练步骤,并且一旦您的整个训练数据被处理一次就过去了.但是,当我查看Google自己的NMT教程中的文档时,我不明白两者之间的区别.请注意以下代码段的最后一行.
export DATA_PATH=
export VOCAB_SOURCE=${DATA_PATH}/vocab.bpe.32000
export VOCAB_TARGET=${DATA_PATH}/vocab.bpe.32000
export TRAIN_SOURCES=${DATA_PATH}/train.tok.clean.bpe.32000.en
export TRAIN_TARGETS=${DATA_PATH}/train.tok.clean.bpe.32000.de
export DEV_SOURCES=${DATA_PATH}/newstest2013.tok.bpe.32000.en
export DEV_TARGETS=${DATA_PATH}/newstest2013.tok.bpe.32000.de
export DEV_TARGETS_REF=${DATA_PATH}/newstest2013.tok.de
export TRAIN_STEPS=1000000
Run Code Online (Sandbox Code Playgroud)
在我看来,似乎只有一种方法来定义训练步骤的数量,而不是模型的时代数量.是否有可能在术语上存在重叠,因此没有必要定义多个时期?
neural-network machine-translation tensorflow sequence-to-sequence