Skip to content

TUIlmenauAMS/BlackBoxOptimizerSPcomparison

Repository files navigation

BlackBoxOptimizerSPcomparison

A comparison of Black Box optimizers for source separation and RNN

This repository contains the software, models, and results text files for a comparison of different Black Box optimizers, including the Random Directions algorithm.

The main program are:

  • ICAabskl_puredelay_multichan_randdir_online.py for the source separation optimizers
  • pytorch_rnn_IIR.py for the RNN optimizers

The optimizers can be chosen in the main programs, by uncommenting the appropriate line. The optimnization is run 10 times, and for each optimization run the obtained objective function or loss function value and needed run time are looged in the corresponding txt file.

For the text files in this repository, the hardware was a processor with 8 CPU cores, each running at 1.8 GHz. Observe that with Colab you will get somewhat different results because it usually just provides 2 cores. Hence it is recommended to let it run locally, but then it likely needs a virtual environment for pypop7. A virtual environment can be created, for instance, with

pip install virtualenv

virtualenv pypop7

#activate:

source ~/pypop7/bin/activate

pip install pypop7

#deactivate with:

deactivate

To let the jupyter notebook "sourceSeprationBlackBoxComp.ipynb" run in Colab is more convenient, because it is its own envirnmonent and installs everything needed, but it is usually slower:

Open In Colab

The program "ICAabskl_puredelay_multichan_randdir_online.py" has a mode which plots instead of writing the results to file. It can be set in its line 285, with the function call with "plot=True". It can also play the separated sound if on line 575 soundplay=True. It needs pyaudio, which Colab doesn't have, so it needs to be run locally.

The program "pytorch_rnn_IIR.py" has a demo mode, where it announces and plots and plays the generated sound, instead of just writing the results to file. It can be enabled in its line 34 with demomode=True" and enabling "import soundfloat" on line 23. Soundfloat needs the module "pyaudio", so it needs to be run locally.

Gerald Schuller, September 2023

About

A comparison of Black Box optimizers for source separation and RNN

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published