簡體   English   中英

NameError:name 'create_model' is not defined ....我試過從 keras 導入模型但它沒有解決它。如何解決?

[英]NameError:name 'create_model' is not defined ....i have tried importing model from keras but it hasnt solved it .how to solve?

我嘗試使用 tensorflow 創建模型。 當我嘗試執行它顯示我這個

其他文件在此鏈接中------- github.com/llSourcell/tensorflow_chatbot

def train():

    enc_train, dec_train=data_utils.prepare_custom_data(
        gConfig['working_directory'])
    train_set = read_data(enc_train,dec_train)

def seq2seq_f(encoder_inputs,decoder_inputs,do_decode):
    return tf.nn.seq2seq.embedding_attention_seq2seq(
        encoder_inputs,decoder_inputs, cell,
        num_encoder_symbols=source_vocab_size,
        num_decoder_symbols=target_vocab_size,
        embedding_size=size,
        output_projection=output_projection,
        feed_previous=do_decode)

with tf.Session(config=config) as sess:
    model = create_model(sess,False)

    while True:
        sess.run(model)

        checkpoint_path = os.path.join(gConfig['working_directory'],'seq2seq.ckpt')
        model.saver.save(sess, checkpoint_path, global_step=model.global_step)

除此之外,我使用的其他python文件位於下面評論部分中指定的github鏈接中

這是在 execute.py 文件中定義 create_model 的代碼


def create_model(session, forward_only):

  """Create model and initialize or load parameters"""
  model = seq2seq_model.Seq2SeqModel( gConfig['enc_vocab_size'], gConfig['dec_vocab_size'], _buckets, gConfig['layer_size'], gConfig['num_layers'], gConfig['max_gradient_norm'], gConfig['batch_size'], gConfig['learning_rate'], gConfig['learning_rate_decay_factor'], forward_only=forward_only)

  if 'pretrained_model' in gConfig:
      model.saver.restore(session,gConfig['pretrained_model'])
      return model

  ckpt = tf.train.get_checkpoint_state(gConfig['working_directory'])
  # the checkpoint filename has changed in recent versions of tensorflow
  checkpoint_suffix = ""
  if tf.__version__ > "0.12":
      checkpoint_suffix = ".index"
  if ckpt and tf.gfile.Exists(ckpt.model_checkpoint_path + checkpoint_suffix):
    print("Reading model parameters from %s" % ckpt.model_checkpoint_path)
    model.saver.restore(session, ckpt.model_checkpoint_path)
  else:
    print("Created model with fresh parameters.")
    session.run(tf.initialize_all_variables())
  return model

好的,您似乎復制了代碼,但沒有對其進行結構化。 如果create_model()在另一個文件中定義,那么您必須導入它。 你這樣做了嗎? (即from file_with_methods import create_model )。 如果您希望我們提供幫助,您應該考慮編輯您的帖子並添加更多代碼。

替代方案:您還可以克隆 github 存儲庫(您在評論中共享的),然后在execution.py文件中更改您想要更改的任何內容。 通過這種方式,您可以保留所有者使用的“層次結構”,並且可以在需要的地方添加自己的代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM