doanh25032004's picture
Upload folder using huggingface_hub
872b0a0 verified
Raw
History Blame Contribute Delete
3.08 kB
import os
import subprocess
import configparser
from shutil import rmtree
import tensorflow as tf
CONFIG_PATH = '../config.ini'
#TMP_DIR = '/tmp/e2eflow'
def upload_gdrive(upload_dir, gdrive_filename):
# search for file in gdrive and capture id if it already exists
lst_lines = subprocess.Popen(['../scripts/gdrive', 'list'],
stdout=subprocess.PIPE)
existing_id = None
for line in lst_lines.stdout:
splits = line.split()
if str(splits[1], 'utf-8') == gdrive_filename:
existing_id = str(splits[0], 'utf-8')
tmp_path = os.path.join('/tmp', gdrive_filename)
if os.path.isfile(tmp_path):
os.remove(tmp_path)
p = subprocess.Popen(['/usr/bin/zip', '-r', tmp_path, upload_dir])
p.wait()
if existing_id:
p = subprocess.Popen(['../scripts/gdrive', 'update',
existing_id, tmp_path])
else:
p = subprocess.Popen(['../scripts/gdrive', 'upload',
'--name', gdrive_filename,
tmp_path])
p.wait()
os.remove(tmp_path)
def config_dict(config_path=CONFIG_PATH):
"""Returns the config as dictionary,
where the elements have intuitively correct types.
"""
config = configparser.ConfigParser()
config.read(config_path)
d = dict()
for section_key in config.sections():
sd = dict()
section = config[section_key]
for key in section:
val = section[key]
try:
sd[key] = int(val)
except ValueError:
try:
sd[key] = float(val)
except ValueError:
try:
sd[key] = section.getboolean(key)
except ValueError:
sd[key] = val
d[section_key] = sd
return d
def convert_input_strings(config_dct, dirs):
if 'manual_decay_iters' in config_dct and 'manual_decay_lrs' in config_dct:
iters_lst = config_dct['manual_decay_iters'].split(',')
lrs_lst = config_dct['manual_decay_lrs'].split(',')
iters_lst = [int(i) for i in iters_lst]
lrs_lst = [float(l) for l in lrs_lst]
config_dct['manual_decay_iters'] = iters_lst
config_dct['manual_decay_lrs'] = lrs_lst
config_dct['num_iters'] = sum(iters_lst)
if 'finetune' in config_dct:
finetune = []
for name in config_dct['finetune'].split(","):
ckpt_dir = os.path.join(dirs['checkpoints'], name)
ckpt = tf.train.get_checkpoint_state(ckpt_dir)
if ckpt is None:
ckpt_dir = os.path.join(dirs['log'], 'ex', name)
ckpt = tf.train.get_checkpoint_state(ckpt_dir)
assert ckpt, "Could not load experiment " + name
finetune.append(ckpt)
config_dct['finetune'] = finetune
def tryremove(name, file=False):
try:
if file:
os.remove(name)
else:
rmtree(name)
except OSError:
pass