mirror of
https://github.com/wassname/Clover-Edition.git
synced 2026-09-09 11:13:26 +08:00
removed some files
This commit is contained in:
+1
-1
@@ -7,7 +7,7 @@ CRED_FILE = "./AI-Adventure-2bb65e3a4e2f.json"
|
||||
|
||||
|
||||
def play_unconstrained():
|
||||
generator = SimpleGenerator()
|
||||
generator = GPT2Generator()
|
||||
prompt = get_story_start("knight")
|
||||
context = get_context("knight")
|
||||
story_manager = UnconstrainedStoryManager(generator)
|
||||
|
||||
@@ -1,86 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import fire
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
import numpy as np
|
||||
import tensorflow as tf
|
||||
|
||||
import model, sample, encoder
|
||||
|
||||
def interact_model(
|
||||
model_name='117M',
|
||||
seed=None,
|
||||
length=20,
|
||||
temperature=1,
|
||||
top_k=0,
|
||||
conversation="""
|
||||
you: hi
|
||||
her: hey
|
||||
you: i'm a human
|
||||
her: i'm a robot
|
||||
you: you ready?
|
||||
her: yes :)
|
||||
you: ok let's start chatting
|
||||
her: sure, what do you want to talk about?"""
|
||||
):
|
||||
|
||||
enc = encoder.get_encoder(model_name)
|
||||
hparams = model.default_hparams()
|
||||
with open(os.path.join('models', model_name, 'hparams.json')) as f:
|
||||
hparams.override_from_dict(json.load(f))
|
||||
|
||||
if length > hparams.n_ctx:
|
||||
raise ValueError("Can't get samples longer than window size: %s" % hparams.n_ctx)
|
||||
|
||||
with tf.Session(graph=tf.Graph()) as sess:
|
||||
np.random.seed(seed)
|
||||
tf.set_random_seed(seed)
|
||||
context = tf.placeholder(tf.int32, [1, None])
|
||||
output = sample.sample_sequence(
|
||||
hparams=hparams, length=length,
|
||||
context=context,
|
||||
batch_size=1,
|
||||
temperature=temperature, top_k=top_k
|
||||
)
|
||||
|
||||
print(conversation)
|
||||
|
||||
while True:
|
||||
saver = tf.train.Saver()
|
||||
ckpt = tf.train.latest_checkpoint(os.path.join('models', model_name))
|
||||
saver.restore(sess, ckpt)
|
||||
message = None
|
||||
while not message:
|
||||
message = input("you: ")
|
||||
conversation = conversation + "\nyou: " + message
|
||||
conversation = conversation + "\nher: "
|
||||
sys.stdout.write("her: ")
|
||||
sys.stdout.flush()
|
||||
|
||||
#sys.stderr.write("************************"+conversation+"***********************")
|
||||
#sys.stderr.flush()
|
||||
|
||||
encoded_conversation = enc.encode(conversation)
|
||||
#print(len(encoded_conversation))
|
||||
result = sess.run(output, feed_dict={
|
||||
context: [encoded_conversation]
|
||||
})[:, len(encoded_conversation):]
|
||||
text = enc.decode(result[0])
|
||||
|
||||
#sys.stderr.write("=============="+text+"=================")
|
||||
#sys.stderr.flush()
|
||||
|
||||
splits = text.split('\n')
|
||||
#line = splits[1] if len(splits)>1 else splits[0]
|
||||
#parts = line.split(': ')
|
||||
#reply = parts[1] if len(parts)>1 else parts[0]
|
||||
reply = splits[0]
|
||||
sys.stdout.write(reply+'\n')
|
||||
sys.stdout.flush()
|
||||
conversation = conversation + reply
|
||||
|
||||
if __name__ == '__main__':
|
||||
fire.Fire(interact_model)
|
||||
|
||||
@@ -1,81 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import fire
|
||||
import json
|
||||
import os
|
||||
import numpy as np
|
||||
import tensorflow as tf
|
||||
|
||||
import model, sample, encoder
|
||||
|
||||
def sample_model(
|
||||
model_name='124M',
|
||||
seed=None,
|
||||
nsamples=0,
|
||||
batch_size=1,
|
||||
length=None,
|
||||
temperature=1,
|
||||
top_k=0,
|
||||
top_p=1,
|
||||
models_dir='models',
|
||||
):
|
||||
"""
|
||||
Run the sample_model
|
||||
:model_name=124M : String, which model to use
|
||||
:seed=None : Integer seed for random number generators, fix seed to
|
||||
reproduce results
|
||||
:nsamples=0 : Number of samples to return, if 0, continues to
|
||||
generate samples indefinately.
|
||||
:batch_size=1 : Number of batches (only affects speed/memory).
|
||||
:length=None : Number of tokens in generated text, if None (default), is
|
||||
determined by model hyperparameters
|
||||
:temperature=1 : Float value controlling randomness in boltzmann
|
||||
distribution. Lower temperature results in less random completions. As the
|
||||
temperature approaches zero, the model will become deterministic and
|
||||
repetitive. Higher temperature results in more random completions.
|
||||
:top_k=0 : Integer value controlling diversity. 1 means only 1 word is
|
||||
considered for each step (token), resulting in deterministic completions,
|
||||
while 40 means 40 words are considered at each step. 0 (default) is a
|
||||
special setting meaning no restrictions. 40 generally is a good value.
|
||||
:models_dir : path to parent folder containing model subfolders
|
||||
(i.e. contains the <model_name> folder)
|
||||
"""
|
||||
models_dir = os.path.expanduser(os.path.expandvars(models_dir))
|
||||
enc = encoder.get_encoder(model_name, models_dir)
|
||||
hparams = model.default_hparams()
|
||||
with open(os.path.join(models_dir, model_name, 'hparams.json')) as f:
|
||||
hparams.override_from_dict(json.load(f))
|
||||
|
||||
if length is None:
|
||||
length = hparams.n_ctx
|
||||
elif length > hparams.n_ctx:
|
||||
raise ValueError("Can't get samples longer than window size: %s" % hparams.n_ctx)
|
||||
|
||||
with tf.Session(graph=tf.Graph()) as sess:
|
||||
|
||||
np.random.seed(seed)
|
||||
tf.set_random_seed(seed)
|
||||
|
||||
output = sample.sample_sequence(
|
||||
hparams=hparams, length=length,
|
||||
start_token=enc.encoder['<|endoftext|>'],
|
||||
batch_size=batch_size,
|
||||
temperature=temperature, top_k=top_k, top_p=top_p
|
||||
)[:, 1:]
|
||||
|
||||
saver = tf.train.Saver()
|
||||
ckpt = tf.train.latest_checkpoint(os.path.join(models_dir, model_name))
|
||||
saver.restore(sess, ckpt)
|
||||
|
||||
generated = 0
|
||||
while nsamples == 0 or generated < nsamples:
|
||||
out = sess.run(output)
|
||||
for i in range(batch_size):
|
||||
generated += batch_size
|
||||
text = enc.decode(out[i])
|
||||
print("=" * 40 + " SAMPLE " + str(generated) + " " + "=" * 40)
|
||||
print(text)
|
||||
|
||||
if __name__ == '__main__':
|
||||
fire.Fire(sample_model)
|
||||
|
||||
@@ -1,92 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import fire
|
||||
import json
|
||||
import os
|
||||
import numpy as np
|
||||
import tensorflow as tf
|
||||
|
||||
import model, sample, encoder
|
||||
|
||||
def interact_model(
|
||||
model_name='124M',
|
||||
seed=None,
|
||||
nsamples=1,
|
||||
batch_size=1,
|
||||
length=None,
|
||||
temperature=1,
|
||||
top_k=0,
|
||||
top_p=1,
|
||||
models_dir='models',
|
||||
):
|
||||
"""
|
||||
Interactively run the model
|
||||
:model_name=124M : String, which model to use
|
||||
:seed=None : Integer seed for random number generators, fix seed to reproduce
|
||||
results
|
||||
:nsamples=1 : Number of samples to return total
|
||||
:batch_size=1 : Number of batches (only affects speed/memory). Must divide nsamples.
|
||||
:length=None : Number of tokens in generated text, if None (default), is
|
||||
determined by model hyperparameters
|
||||
:temperature=1 : Float value controlling randomness in boltzmann
|
||||
distribution. Lower temperature results in less random completions. As the
|
||||
temperature approaches zero, the model will become deterministic and
|
||||
repetitive. Higher temperature results in more random completions.
|
||||
:top_k=0 : Integer value controlling diversity. 1 means only 1 word is
|
||||
considered for each step (token), resulting in deterministic completions,
|
||||
while 40 means 40 words are considered at each step. 0 (default) is a
|
||||
special setting meaning no restrictions. 40 generally is a good value.
|
||||
:models_dir : path to parent folder containing model subfolders
|
||||
(i.e. contains the <model_name> folder)
|
||||
"""
|
||||
models_dir = os.path.expanduser(os.path.expandvars(models_dir))
|
||||
if batch_size is None:
|
||||
batch_size = 1
|
||||
assert nsamples % batch_size == 0
|
||||
|
||||
enc = encoder.get_encoder(model_name, models_dir)
|
||||
hparams = model.default_hparams()
|
||||
with open(os.path.join(models_dir, model_name, 'hparams.json')) as f:
|
||||
hparams.override_from_dict(json.load(f))
|
||||
|
||||
if length is None:
|
||||
length = hparams.n_ctx // 2
|
||||
elif length > hparams.n_ctx:
|
||||
raise ValueError("Can't get samples longer than window size: %s" % hparams.n_ctx)
|
||||
|
||||
with tf.Session(graph=tf.Graph()) as sess:
|
||||
context = tf.placeholder(tf.int32, [batch_size, None])
|
||||
np.random.seed(seed)
|
||||
tf.set_random_seed(seed)
|
||||
output = sample.sample_sequence(
|
||||
hparams=hparams, length=length,
|
||||
context=context,
|
||||
batch_size=batch_size,
|
||||
temperature=temperature, top_k=top_k, top_p=top_p
|
||||
)
|
||||
|
||||
saver = tf.train.Saver()
|
||||
ckpt = tf.train.latest_checkpoint(os.path.join(models_dir, model_name))
|
||||
saver.restore(sess, ckpt)
|
||||
|
||||
while True:
|
||||
raw_text = input("Model prompt >>> ")
|
||||
while not raw_text:
|
||||
print('Prompt should not be empty!')
|
||||
raw_text = raw_input("Model prompt >>> ")
|
||||
context_tokens = enc.encode(raw_text)
|
||||
generated = 0
|
||||
for _ in range(nsamples // batch_size):
|
||||
out = sess.run(output, feed_dict={
|
||||
context: [context_tokens for _ in range(batch_size)]
|
||||
})[:, len(context_tokens):]
|
||||
for i in range(batch_size):
|
||||
generated += 1
|
||||
text = enc.decode(out[i])
|
||||
print("=" * 40 + " SAMPLE " + str(generated) + " " + "=" * 40)
|
||||
print(text)
|
||||
print("=" * 80)
|
||||
|
||||
if __name__ == '__main__':
|
||||
fire.Fire(interact_model)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import tensorflow as tf
|
||||
|
||||
import model
|
||||
from generator.gpt2.src import model
|
||||
|
||||
def penalize_used(logits, output):
|
||||
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
import numpy as np
|
||||
import tensorflow as tf
|
||||
|
||||
|
||||
|
||||
seed=None
|
||||
|
||||
print(np.random.seed(seed))
|
||||
#
|
||||
|
||||
tf.set_random_seed(seed)
|
||||
generate = tf.random_uniform(())
|
||||
with tf.Session() as sess:
|
||||
print(generate.eval())
|
||||
# 0.96046877
|
||||
Reference in New Issue
Block a user