Skip to content

Commit 9742103

Browse files
jesseengelMagenta Team
authored andcommitted
Fixes to Train_VST.ipynb
* No longer crashes, can now handle model directory paths that have spaces. Seems like something changed about the way !bash commands were parsing strings/variables that caused things to crashed. Fixed by just doing all string manipulation in python explicitly. PiperOrigin-RevId: 470303927
1 parent 915b35c commit 9742103

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

ddsp/colab/demos/Train_VST.ipynb

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@
128128
"from google.colab import drive\n",
129129
"import tensorflow as tf\n",
130130
"\n",
131-
"!pip install ipyfilechooser \u0026\u003e /dev/null\n",
131+
"!pip install ipyfilechooser==0.6.0 \u0026\u003e /dev/null\n",
132132
"from ipyfilechooser import FileChooser\n",
133133
"\n",
134134
"# ------------------------------------------------------------------------------\n",
@@ -227,9 +227,12 @@
227227
" print('(10 minutes of training audio -\u003e 20-30 minutes)')\n",
228228
"\n",
229229
" audio_filepattern = os.path.join(audio_dir, '*')\n",
230+
" audio_fp_str = f'\"{audio_filepattern}\"' \n",
231+
" tfrecord_path_str = f'\"{data_dir}/train.tfrecord\"'\n",
232+
"\n",
230233
" !ddsp_prepare_tfrecord \\\n",
231-
" --input_audio_filepatterns=$audio_filepattern \\\n",
232-
" --output_tfrecord_path=$data_dir/train.tfrecord \\\n",
234+
" --input_audio_filepatterns=$audio_fp_str \\\n",
235+
" --output_tfrecord_path=$tfrecord_path_str \\\n",
233236
" --num_shards=10 \\\n",
234237
" --sample_rate=$sample_rate \\\n",
235238
" --frame_rate=$frame_rate \\\n",
@@ -241,12 +244,13 @@
241244
"\n",
242245
"def train(model_dir, data_dir, steps=30000):\n",
243246
" file_pattern = os.path.join(data_dir, 'train.tfrecord*')\n",
247+
" fp_str = f\"TFRecordProvider.file_pattern='{file_pattern}'\"\n",
244248
" !ddsp_run \\\n",
245249
" --mode=train \\\n",
246250
" --save_dir=\"$model_dir\" \\\n",
247251
" --gin_file=models/vst/vst.gin \\\n",
248252
" --gin_file=datasets/tfrecord.gin \\\n",
249-
" --gin_param=\"TFRecordProvider.file_pattern='$file_pattern'\" \\\n",
253+
" --gin_param=\"$fp_str\" \\\n",
250254
" --gin_param=\"TFRecordProvider.centered=True\" \\\n",
251255
" --gin_param=\"TFRecordProvider.frame_rate=50\" \\\n",
252256
" --gin_param=\"batch_size=16\" \\\n",
@@ -261,21 +265,25 @@
261265
"\n",
262266
"\n",
263267
"def reset_state(data_dir, audio_dir, model_dir):\n",
268+
" model_dir_str = f'\"{model_dir}\"'\n",
264269
" if tf.io.gfile.exists(data_dir):\n",
265270
" !rm -r $data_dir\n",
266271
" !rm -r $audio_dir\n",
267272
" !mkdir -p $data_dir\n",
268273
" !mkdir -p $audio_dir\n",
269-
" !mkdir -p $model_dir\n",
274+
" !mkdir -p $model_dir_str\n",
270275
"\n",
271276
"\n",
272277
"def export_and_download(model_dir, model_name=Name):\n",
273278
" export_path = os.path.join(model_dir, model_name)\n",
274279
"\n",
280+
" model_dir_str=f'\"{model_dir}\"'\n",
281+
" export_path_str=f'\"{export_path}\"'\n",
282+
" \n",
275283
" !ddsp_export \\\n",
276284
" --name=$model_name \\\n",
277-
" --model_path=$model_dir \\\n",
278-
" --save_dir=$export_path \\\n",
285+
" --model_path=$model_dir_str \\\n",
286+
" --save_dir=$export_path_str \\\n",
279287
" --inference_model=vst_stateless_predict_controls \\\n",
280288
" --tflite \\\n",
281289
" --notfjs\n",
@@ -284,8 +292,7 @@
284292
" zip_fname = f'{model_name}.zip'\n",
285293
" zip_fp = os.path.join(model_dir, zip_fname)\n",
286294
" print(f'Export complete! Zipping {export_path} to {zip_fp}')\n",
287-
" !cd $model_dir \u0026\u0026 zip -r $zip_fname ./$model_name\n",
288-
" # !zip -jr $zip_fp $export_path\n",
295+
" !cd $model_dir_str \u0026\u0026 zip -r $zip_fname ./$model_name\n",
289296
"\n",
290297
" # Download.\n",
291298
" print(f'Zipping Complete! Downloading... {zip_fname}')\n",

0 commit comments

Comments
 (0)