def load_language(app, tokenizer_service, tag, model_dir):
config = Config.load(['./default.conf', './default.' + tag + '.conf', os.path.join(model_dir, 'model.conf')])
model = create_model(config)
graph = tf.Graph()
session = tf.Session(graph=graph)
with graph.as_default():
# Force everything to run on CPU, we run on single inputs so there is not much point
# on going through the GPU
with tf.device('/cpu:0'):
model.build()
loader = tf.train.Saver()
with session.as_default():
loader.restore(session, os.path.join(model_dir, 'best'))
tokenizer = Tokenizer(tokenizer_service, tag)
app.add_language(tag, LanguageContext(tag, tokenizer, session, config, model))
print('Loaded language ' + tag)
python类create_model()的实例源码
run_server.py 文件源码
项目:almond-nnparser
作者: Stanford-Mobisocial-IoT-Lab
项目源码
文件源码
阅读 33
收藏 0
点赞 0
评论 0
def run():
if len(sys.argv) < 3:
print("** Usage: python3 " + sys.argv[0] + " <<Model Directory>> <<Test Set>>")
sys.exit(1)
np.random.seed(42)
model_dir = sys.argv[1]
config = Config.load(['./default.conf', os.path.join(model_dir, 'model.conf')])
model = create_model(config)
test_data = load_data(sys.argv[2], config.dictionary, config.grammar, config.max_length)
print("unknown", unknown_tokens)
with tf.Graph().as_default():
tf.set_random_seed(1234)
with tf.device('/cpu:0'):
model.build()
test_eval = Seq2SeqEvaluator(model, config.grammar, test_data, 'test', config.reverse_dictionary, beam_size=config.beam_size, batch_size=config.batch_size)
loader = tf.train.Saver()
with tf.Session() as sess:
loader.restore(sess, os.path.join(model_dir, 'best'))
#sess = tf_debug.LocalCLIDebugWrapperSession(sess)
#sess.add_tensor_filter("has_inf_or_nan", tf_debug.has_inf_or_nan)
test_eval.eval(sess, save_to_file=True)
eval_output_embeddings.py 文件源码
项目:almond-nnparser
作者: Stanford-Mobisocial-IoT-Lab
项目源码
文件源码
阅读 30
收藏 0
点赞 0
评论 0
def run():
if len(sys.argv) < 4:
print("** Usage: python3 " + sys.argv[0] + " <<Model Directory>> <<Everything Set>> <<Test Set>>")
sys.exit(1)
np.random.seed(42)
model_dir = sys.argv[1]
config = Config.load(['./default.conf', os.path.join(model_dir, 'model.conf')])
model = create_model(config)
everything_labels, everything_label_lengths = load_programs(config, sys.argv[2])
test_labels, test_label_lengths = load_programs(config, sys.argv[3])
#test_labels, test_label_lengths = sample(config.grammar, test_labels, test_label_lengths)
print("unknown", unknown_tokens)
with tf.Graph().as_default():
tf.set_random_seed(1234)
model.build()
loader = tf.train.Saver()
train_bag_of_tokens = bag_of_tokens(config, everything_labels, everything_label_lengths)
V, mean = pca_fit(train_bag_of_tokens, n_components=2)
eval_bag_of_tokens = bag_of_tokens(config, test_labels, test_label_lengths)
transformed = pca_transform(eval_bag_of_tokens, V, mean)
with tf.Session() as sess:
loader.restore(sess, os.path.join(model_dir, 'best'))
transformed = transformed.eval(session=sess)
programs = reconstruct_programs(test_labels, test_label_lengths, config.grammar.tokens)
show_pca(transformed, programs)
def main(unused_argv):
train_dir = FLAGS.train_dir
if not os.path.exists(train_dir):
tf.logging.info("Creating training directory: %s", train_dir)
os.makedirs(train_dir)
g = tf.Graph()
with g.as_default():
model = create_model(FLAGS)
model.build()
learning_rate, learning_rate_decay_fn = learning_rate_fn(model.config.batch_size, FLAGS.num_epochs_per_decay)
train_op = tf.contrib.layers.optimize_loss(
loss=model.total_loss,
global_step=model.global_step,
learning_rate=learning_rate,
learning_rate_decay_fn=learning_rate_decay_fn,
optimizer=FLAGS.optimizer)
saver = tf.train.Saver(max_to_keep=FLAGS.max_checkpoints_to_keep)
tf.contrib.slim.learning.train(
train_op,
train_dir,
log_every_n_steps=FLAGS.log_every_n_steps,
graph=g,
global_step=model.global_step,
number_of_steps=FLAGS.number_of_steps,
save_interval_secs=FLAGS.save_interval_secs,
save_summaries_secs=FLAGS.save_summaries_secs,
saver=saver)
def load(self, checkpoint_path, model_name='tacotron'):
print('Constructing model: %s' % model_name)
inputs = tf.placeholder(tf.int32, [1, None], 'inputs')
input_lengths = tf.placeholder(tf.int32, [1], 'input_lengths')
with tf.variable_scope('model') as scope:
self.model = create_model(model_name, hparams)
self.model.initialize(inputs, input_lengths)
self.wav_output = audio.inv_spectrogram_tensorflow(self.model.linear_outputs[0])
print('Loading checkpoint: %s' % checkpoint_path)
self.session = tf.Session()
self.session.run(tf.global_variables_initializer())
saver = tf.train.Saver()
saver.restore(self.session, checkpoint_path)
def run():
if len(sys.argv) < 4:
print("** Usage: python3 " + sys.argv[0] + " <<Model Directory>> <<Train Set>> <<Test Set>>")
sys.exit(1)
np.random.seed(42)
model_dir = sys.argv[1]
config = Config.load(['./default.conf', os.path.join(model_dir, 'model.conf')])
model = create_model(config)
train_data = load_data(sys.argv[2], config.dictionary, config.grammar, config.max_length)
pca_data = load_data(sys.argv[3], config.dictionary, config.grammar, config.max_length)
print("unknown", unknown_tokens)
with tf.Graph().as_default():
model.build()
loader = tf.train.Saver()
with tf.Session() as sess:
loader.restore(sess, os.path.join(model_dir, 'best'))
inputs, input_lengths, parses, _, _ = train_data
final_encoder_state = tf.concat(nest.flatten(model.final_encoder_state), axis=1)
final_encoder_size = final_encoder_state.get_shape()[1]
final_states_arrays = []
# capture all the final encoder states
for input_batch, input_length_batch, parse_batch in get_minibatches([inputs, input_lengths, parses],
config.batch_size):
feed_dict = model.create_feed_dict(input_batch, input_length_batch, parse_batch)
state_array = sess.run(final_encoder_state, feed_dict=feed_dict)
#print state_array.shape
final_states_arrays.append(state_array)
X = np.concatenate(final_states_arrays, axis=0)
assert X.shape == (len(inputs), final_encoder_size)
X = tf.constant(X)
mean = tf.reduce_mean(X, axis=0)
centered_X = X - mean
S, U, V = tf.svd(centered_X)
# take only the top 2 components
V = V[:2]
V_array, mean_array = sess.run([V, mean])
inputs, input_lengths, parses, labels, label_lengths = pca_data
X = final_encoder_state
centered_X = X - tf.constant(mean_array)
transformed_X = tf.matmul(centered_X, tf.constant(V_array.T))
feed_dict = model.create_feed_dict(inputs, input_lengths, parses)
X_pca = sess.run(transformed_X, feed_dict=feed_dict)
if False:
sentences = reconstruct_sentences(inputs, input_lengths, config.reverse_dictionary)
else:
sentences = reconstruct_sentences(labels, label_lengths, config.grammar.tokens)
show_pca(X_pca, sentences)
def run():
if len(sys.argv) < 3:
print("** Usage: python3 " + sys.argv[0] + " <<Model Directory>> <<Train Set>> [<<Dev Set>>]")
sys.exit(1)
np.random.seed(42)
model_dir = sys.argv[1]
model_conf = os.path.join(model_dir, 'model.conf')
config = Config.load(['./default.conf', model_conf])
model = create_model(config)
train_data = load_data(sys.argv[2], config.dictionary, config.grammar, config.max_length)
if len(sys.argv) > 3:
dev_data = load_data(sys.argv[3], config.dictionary, config.grammar, config.max_length)
else:
dev_data = None
print("unknown", unknown_tokens)
try:
os.mkdir(model_dir)
except OSError:
pass
if not os.path.exists(model_conf):
config.save(model_conf)
with tf.Graph().as_default():
tf.set_random_seed(1234)
model.build()
init = tf.global_variables_initializer()
saver = tf.train.Saver(max_to_keep=config.n_epochs)
train_eval = Seq2SeqEvaluator(model, config.grammar, train_data, 'train', config.reverse_dictionary, beam_size=config.beam_size, batch_size=config.batch_size)
dev_eval = Seq2SeqEvaluator(model, config.grammar, dev_data, 'dev', config.reverse_dictionary, beam_size=config.beam_size, batch_size=config.batch_size)
trainer = Trainer(model, train_data, train_eval, dev_eval, saver,
model_dir=model_dir,
max_length=config.max_length,
batch_size=config.batch_size,
n_epochs=config.n_epochs,
dropout=config.dropout)
tfconfig = tf.ConfigProto()
tfconfig.graph_options.optimizer_options.global_jit_level = tf.OptimizerOptions.ON_1
with tf.Session(config=tfconfig) as sess:
# Run the Op to initialize the variables.
sess.run(init)
#sess = tf_debug.LocalCLIDebugWrapperSession(sess)
#sess.add_tensor_filter("has_inf_or_nan", tf_debug.has_inf_or_nan)
# Fit the model
best_dev, best_train = trainer.fit(sess)
print("best train", best_train)
print("best dev", best_dev)
def export(flags):
# Build the inference graph.
g = tf.Graph()
with g.as_default(), tf.device('/cpu:0'):
model = create_model(flags, 'inference')
model.build()
saver = tf.train.Saver()
g.finalize()
model_path = tf.train.latest_checkpoint(flags.checkpoint_dir)
if not model_path:
tf.logging.info("Skipping inference. No checkpoint found in: %s",
flags.checkpoint_dir)
return
with tf.Session(graph=g) as sess:
# Load the model from checkpoint.
tf.logging.info("Loading model from checkpoint: %s", flags.checkpoint_dir)
saver.restore(sess, model_path)
model_vars = model.vars(sess)
# Build graph to export
g = tf.Graph()
with g.as_default(), tf.device('/cpu:0'):
model = create_model(flags, 'to_export')
model.build(model_vars)
with tf.Session(graph=g) as sess:
graph_def = sess.graph_def
if flags.finalize_graph:
sess.run(model.initializer)
g.finalize()
graph_def = g.as_graph_def()
graph_def = tf.graph_util.convert_variables_to_constants(
sess, graph_def, model.output_names())
log_dir = './output/export'
if not tf.gfile.IsDirectory(log_dir):
tf.logging.info("Creating log directory: %s", log_dir)
tf.gfile.MakeDirs(log_dir)
tf.train.write_graph(graph_def, log_dir, flags.output_file_name, as_text=False)