Giter Site home page Giter Site logo

guitarml / guitarlstm Goto Github PK

View Code? Open in Web Editor NEW
362.0 22.0 48.0 32.59 MB

Deep learning models for guitar amp/pedal emulation using LSTM with Keras.

Home Page: https://guitarml.com/

License: GNU General Public License v3.0

Jupyter Notebook 34.99% Python 65.01%
deep-learning guitar machine-learning keras-tensorflow

guitarlstm's Introduction

Hi there ๐Ÿ‘‹

Things I'm doing

  • Creating guitar plugins that use machine learning to emulate real amps and pedals.
  • Creating amp and pedal captures to use in my plugins: ToneLibrary
  • Building DIY effects hardware
  • Making tutorials and demos on YouTube
  • Writing about the tech used in my software on Medium
  • Working with local Universities: UAH Research Project
  • Making music! ๐ŸŽธ

Get Involved

  • Create an issue or discussion on any of my public repositories to jump in!
  • Email for questions or to contribute tone models: [email protected]
  • Support on Patreon or donate via Paypal

For product downloads and more information, see my website.

GuitarML's GitHub Stats

Top Langs

guitarlstm's People

Contributors

guitarml avatar jmiller656 avatar mishushakov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

guitarlstm's Issues

Browser support (discussion)

Hey there,
i was able to load the model successfully in browser using tensorflow.js

Screenshot 2020-12-06 at 15 18 29

to convert the models you can use TensorFlow.js converter

pip install tensorflowjs
tensorflowjs_converter --input_format keras models/ts9x/ts9.h5 models/ts9/lite

this issue is a backlog for inferencing and (possibly) training models in browsers

Could you please post some sound samples?

Hello! I'm interested in this project, but I want to know how it sounds before I commit to downloading it. Do you have any samples or a youtube video you could post in the readme?

Model experimentation

After further inspection on the original research paper, I believe the LSTM model described is different from the implementation in GuitarLSTM. It describes using two hidden layers, which I initially thought were two conv1d layers, but I think they meant two stacked LSTM layers. In that case, the model would look like this:

    input_size=1
    learning_rate=0.0005
    max_epochs=500   

    # Create Sequential Model ###########################################
    clear_session()
    model = Sequential()
    model.add(LSTM(hidden_units, return_sequences=True, input_shape=(input_size,1)))
    model.add(LSTM(hidden_units,))
    model.add(Dense(1, activation=None))

That would explain why the model had to be trained for 500 epochs, and also why it took 20 hours on a high end GPU. The model would take in a single audio sample, as opposed to the "input_size" amount.

Either way, the conv1d layers seem to offer a significant speed advantage while training. The conv1d layers allow for a large input_size, while reducing number of parameters going into the LSTM layer. The configuration has yet to be tested in a real time application.

The paper also describes adding the input to the output, so that the model only has to learn the difference. This technique is not implemented in GuitarLSTM.

Experimentation on the model stack would be beneficial to finding an optimal approach. Feel free to share any findings here, or on the facebook group (intended for discussion on model training).
Link to facebook Community Group:
https://www.facebook.com/groups/674031436584335/?ref=pages_profile_groups_tab&source_id=102883764967858

Update: Keras uses LSTM stateful=false by default, which means hidden and cell states aren't carried to the next step. Based on the statements in the paper, it appears they use a stateful LSTM, which is another difference.

Memory leak on predictions

I have noticed that in order to properly finish training you'll need a lot of free memory in order to run the prediction
if you try to save the tensor as file the resulting file is going to take up gigabytes

in my case (#3) you're basically getting 65mb of data for 242kb of audio (26346% increase)

Prepare data with tensorflow?

currently numpy is used for preparing data in predict.py (and other places)
it would makes sense to switch to corresponding methods in tensorflow

primary motivation would be better performance (source) and secondary, to have same preparation pipeline on every platform tensorflow supports, compared to numpy, which is only available in python

Samples of output.

I said that it won't model compression so here is a sample. It is a very short sample but I did that so that it could work a lot of just that sound and hopefully get it sounding very close. There is no compression sound in the predicted output.

I used training_mode=0 in this one but it still reached only 0.0029 in loss and I have also tried with 3 and 4. Please let me know what I am doing wrong. Regards.

rnla7230_7.zip

python train.py --input_size=200 --batch_size=512 --split_data=0 --max_epochs=200 --training_mode=0 data\_the_sampling_file2.wav "data\_rnla7230 #7.wav" rnla7230
2020-12-10 21:52:24.120317: I tensorflow/core/platform/cpu_feature_guard.cc:142] This TensorFlow binary is optimized with oneAPI Deep Neural Network Library (oneDNN)to use the following CPU instructions in performance-critical operations:  AVX AVX2
To enable them in other operations, rebuild TensorFlow with the appropriate compiler flags.
Model: "sequential"
_________________________________________________________________
Layer (type)                 Output Shape              Param #
=================================================================
conv1d (Conv1D)              (None, 17, 16)            208
_________________________________________________________________
conv1d_1 (Conv1D)            (None, 2, 16)             3088
_________________________________________________________________
lstm (LSTM)                  (None, 36)                7632
_________________________________________________________________
dense (Dense)                (None, 1)                 37
=================================================================
Total params: 10,965
Trainable params: 10,965
Non-trainable params: 0
_________________________________________________________________
None
Epoch 1/200
211/211 [==============================] - 3s 13ms/step - loss: 0.0843 - error_to_signal: 0.0843 - val_loss: 0.0452 - val_error_to_signal: 0.0453
Epoch 2/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0264 - error_to_signal: 0.0264 - val_loss: 0.0514 - val_error_to_signal: 0.0518
Epoch 3/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0157 - error_to_signal: 0.0156 - val_loss: 0.0091 - val_error_to_signal: 0.0091
Epoch 4/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0094 - error_to_signal: 0.0095 - val_loss: 0.0233 - val_error_to_signal: 0.0233
Epoch 5/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0081 - error_to_signal: 0.0083 - val_loss: 0.0728 - val_error_to_signal: 0.0728
Epoch 6/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0141 - error_to_signal: 0.0140 - val_loss: 0.0052 - val_error_to_signal: 0.0052
Epoch 7/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0056 - error_to_signal: 0.0056 - val_loss: 0.0094 - val_error_to_signal: 0.0093
Epoch 8/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0056 - error_to_signal: 0.0056 - val_loss: 0.0052 - val_error_to_signal: 0.0052
Epoch 9/200
211/211 [==============================] - 6s 27ms/step - loss: 0.0049 - error_to_signal: 0.0049 - val_loss: 0.0066 - val_error_to_signal: 0.0066
Epoch 10/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0044 - error_to_signal: 0.0043 - val_loss: 0.0074 - val_error_to_signal: 0.0074
Epoch 11/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0045 - error_to_signal: 0.0045 - val_loss: 0.0057 - val_error_to_signal: 0.0058
Epoch 12/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0045 - error_to_signal: 0.0045 - val_loss: 0.0130 - val_error_to_signal: 0.0131
Epoch 13/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0048 - error_to_signal: 0.0048 - val_loss: 0.0040 - val_error_to_signal: 0.0040
Epoch 14/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0040 - error_to_signal: 0.0040 - val_loss: 0.0093 - val_error_to_signal: 0.0093
Epoch 15/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0043 - error_to_signal: 0.0043 - val_loss: 0.0044 - val_error_to_signal: 0.0044
Epoch 16/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0039 - error_to_signal: 0.0039 - val_loss: 0.0066 - val_error_to_signal: 0.0066
Epoch 17/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0033 - error_to_signal: 0.0033 - val_loss: 0.0041 - val_error_to_signal: 0.0041
Epoch 18/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0051 - error_to_signal: 0.0051 - val_loss: 0.0042 - val_error_to_signal: 0.0042
Epoch 19/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0038 - error_to_signal: 0.0038 - val_loss: 0.0038 - val_error_to_signal: 0.0039
Epoch 20/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0028 - error_to_signal: 0.0028 - val_loss: 0.0041 - val_error_to_signal: 0.0041
Epoch 21/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0028 - error_to_signal: 0.0029 - val_loss: 0.0076 - val_error_to_signal: 0.0077
Epoch 22/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0045 - error_to_signal: 0.0044 - val_loss: 0.0028 - val_error_to_signal: 0.0028
Epoch 23/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0032 - error_to_signal: 0.0032 - val_loss: 0.0171 - val_error_to_signal: 0.0172
Epoch 24/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0039 - error_to_signal: 0.0039 - val_loss: 0.0058 - val_error_to_signal: 0.0059
Epoch 25/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0034 - error_to_signal: 0.0034 - val_loss: 0.0039 - val_error_to_signal: 0.0039
Epoch 26/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0029 - error_to_signal: 0.0029 - val_loss: 0.0037 - val_error_to_signal: 0.0037
Epoch 27/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0031 - error_to_signal: 0.0031 - val_loss: 0.0022 - val_error_to_signal: 0.0022
Epoch 28/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0028 - error_to_signal: 0.0028 - val_loss: 0.0034 - val_error_to_signal: 0.0035
Epoch 29/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0031 - error_to_signal: 0.0031 - val_loss: 0.0319 - val_error_to_signal: 0.0320
Epoch 30/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0055 - error_to_signal: 0.0055 - val_loss: 0.0163 - val_error_to_signal: 0.0164
Epoch 31/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0030 - error_to_signal: 0.0030 - val_loss: 0.0030 - val_error_to_signal: 0.0030
Epoch 32/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0024 - error_to_signal: 0.0024 - val_loss: 0.0042 - val_error_to_signal: 0.0043
Epoch 33/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0025 - error_to_signal: 0.0025 - val_loss: 0.0021 - val_error_to_signal: 0.0021
Epoch 34/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0027 - error_to_signal: 0.0027 - val_loss: 0.0024 - val_error_to_signal: 0.0024
Epoch 35/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0022 - error_to_signal: 0.0022 - val_loss: 0.0021 - val_error_to_signal: 0.0021
Epoch 36/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0020 - error_to_signal: 0.0020 - val_loss: 0.0024 - val_error_to_signal: 0.0024
Epoch 37/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0019 - error_to_signal: 0.0019 - val_loss: 0.0041 - val_error_to_signal: 0.0041
Epoch 38/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0027 - error_to_signal: 0.0027 - val_loss: 0.0026 - val_error_to_signal: 0.0026
Epoch 39/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0023 - error_to_signal: 0.0023 - val_loss: 0.0029 - val_error_to_signal: 0.0029
Epoch 40/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0024 - error_to_signal: 0.0024 - val_loss: 0.0030 - val_error_to_signal: 0.0030
Epoch 41/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0022 - error_to_signal: 0.0022 - val_loss: 0.0020 - val_error_to_signal: 0.0020
Epoch 42/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0021 - error_to_signal: 0.0022 - val_loss: 0.0069 - val_error_to_signal: 0.0069
Epoch 43/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0029 - error_to_signal: 0.0029 - val_loss: 0.0063 - val_error_to_signal: 0.0063
Epoch 44/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0028 - error_to_signal: 0.0028 - val_loss: 0.0027 - val_error_to_signal: 0.0027
Epoch 45/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0020 - error_to_signal: 0.0020 - val_loss: 0.0027 - val_error_to_signal: 0.0027
Epoch 46/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0016 - error_to_signal: 0.0016 - val_loss: 0.0024 - val_error_to_signal: 0.0024
Epoch 47/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0018 - error_to_signal: 0.0018 - val_loss: 0.0034 - val_error_to_signal: 0.0034
Epoch 48/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0023 - error_to_signal: 0.0023 - val_loss: 0.0076 - val_error_to_signal: 0.0076
Epoch 49/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0037 - error_to_signal: 0.0037 - val_loss: 0.0047 - val_error_to_signal: 0.0047
Epoch 50/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0020 - error_to_signal: 0.0020 - val_loss: 0.0019 - val_error_to_signal: 0.0019
Epoch 51/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0018 - error_to_signal: 0.0018 - val_loss: 0.0060 - val_error_to_signal: 0.0060
Epoch 52/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0019 - error_to_signal: 0.0019 - val_loss: 0.0012 - val_error_to_signal: 0.0013
Epoch 53/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0029 - error_to_signal: 0.0029 - val_loss: 0.0015 - val_error_to_signal: 0.0015
Epoch 54/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0018 - error_to_signal: 0.0018 - val_loss: 0.0025 - val_error_to_signal: 0.0025
Epoch 55/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0024 - error_to_signal: 0.0024 - val_loss: 0.0116 - val_error_to_signal: 0.0116
Epoch 56/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0018 - error_to_signal: 0.0018 - val_loss: 0.0020 - val_error_to_signal: 0.0020
Epoch 57/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0015 - error_to_signal: 0.0015 - val_loss: 0.0012 - val_error_to_signal: 0.0012
Epoch 58/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0017 - error_to_signal: 0.0017 - val_loss: 0.0023 - val_error_to_signal: 0.0023
Epoch 59/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0015 - error_to_signal: 0.0015 - val_loss: 0.0017 - val_error_to_signal: 0.0017
Epoch 60/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0017 - error_to_signal: 0.0018 - val_loss: 0.0031 - val_error_to_signal: 0.0031
Epoch 61/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0020 - error_to_signal: 0.0020 - val_loss: 0.0032 - val_error_to_signal: 0.0032
Epoch 62/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0030 - error_to_signal: 0.0030 - val_loss: 0.0042 - val_error_to_signal: 0.0042
Epoch 63/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0017 - error_to_signal: 0.0017 - val_loss: 0.0011 - val_error_to_signal: 0.0011
Epoch 64/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0018 - val_error_to_signal: 0.0018
Epoch 65/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0018 - error_to_signal: 0.0018 - val_loss: 0.0016 - val_error_to_signal: 0.0016
Epoch 66/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0015 - error_to_signal: 0.0015 - val_loss: 0.0017 - val_error_to_signal: 0.0017
Epoch 67/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0016 - error_to_signal: 0.0017 - val_loss: 0.0056 - val_error_to_signal: 0.0056
Epoch 68/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0019 - error_to_signal: 0.0019 - val_loss: 0.0028 - val_error_to_signal: 0.0028
Epoch 69/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0018 - error_to_signal: 0.0018 - val_loss: 0.0016 - val_error_to_signal: 0.0016
Epoch 70/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0018 - val_error_to_signal: 0.0018
Epoch 71/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0026 - error_to_signal: 0.0026 - val_loss: 0.0038 - val_error_to_signal: 0.0038
Epoch 72/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0017 - error_to_signal: 0.0017 - val_loss: 0.0018 - val_error_to_signal: 0.0018
Epoch 73/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0018 - error_to_signal: 0.0017 - val_loss: 0.0017 - val_error_to_signal: 0.0017
Epoch 74/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 0.0013 - val_error_to_signal: 0.0013
Epoch 75/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0015 - val_error_to_signal: 0.0015
Epoch 76/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0024 - error_to_signal: 0.0024 - val_loss: 0.0048 - val_error_to_signal: 0.0048
Epoch 77/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0014 - error_to_signal: 0.0014 - val_loss: 0.0053 - val_error_to_signal: 0.0053
Epoch 78/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0016 - error_to_signal: 0.0016 - val_loss: 0.0011 - val_error_to_signal: 0.0011
Epoch 79/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0023 - val_error_to_signal: 0.0024
Epoch 80/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0013 - val_error_to_signal: 0.0013
Epoch 81/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0015 - error_to_signal: 0.0015 - val_loss: 0.0017 - val_error_to_signal: 0.0017
Epoch 82/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0021 - error_to_signal: 0.0021 - val_loss: 0.0026 - val_error_to_signal: 0.0026
Epoch 83/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0017 - error_to_signal: 0.0017 - val_loss: 0.0021 - val_error_to_signal: 0.0021
Epoch 84/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0014 - error_to_signal: 0.0014 - val_loss: 0.0222 - val_error_to_signal: 0.0223
Epoch 85/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0093 - error_to_signal: 0.0093 - val_loss: 0.0046 - val_error_to_signal: 0.0046
Epoch 86/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0018 - error_to_signal: 0.0018 - val_loss: 0.0022 - val_error_to_signal: 0.0022
Epoch 87/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0015 - error_to_signal: 0.0015 - val_loss: 0.0041 - val_error_to_signal: 0.0042
Epoch 88/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 9.1380e-04 - val_error_to_signal: 9.1969e-04
Epoch 89/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0015 - val_error_to_signal: 0.0015
Epoch 90/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 0.0031 - val_error_to_signal: 0.0032
Epoch 91/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 8.6517e-04 - val_error_to_signal: 8.6722e-04
Epoch 92/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0019 - val_error_to_signal: 0.0019
Epoch 93/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0014 - error_to_signal: 0.0014 - val_loss: 0.0032 - val_error_to_signal: 0.0032
Epoch 94/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0015 - error_to_signal: 0.0015 - val_loss: 0.0016 - val_error_to_signal: 0.0016
Epoch 95/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0015 - error_to_signal: 0.0015 - val_loss: 0.0058 - val_error_to_signal: 0.0058
Epoch 96/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0014 - error_to_signal: 0.0014 - val_loss: 0.0014 - val_error_to_signal: 0.0014
Epoch 97/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 0.0013 - val_error_to_signal: 0.0013
Epoch 98/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0010 - error_to_signal: 0.0010 - val_loss: 0.0022 - val_error_to_signal: 0.0022
Epoch 99/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0014 - error_to_signal: 0.0014 - val_loss: 0.0016 - val_error_to_signal: 0.0016
Epoch 100/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0012 - val_error_to_signal: 0.0012
Epoch 101/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0016 - val_error_to_signal: 0.0016
Epoch 102/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0014 - error_to_signal: 0.0014 - val_loss: 0.0021 - val_error_to_signal: 0.0021
Epoch 103/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0016 - error_to_signal: 0.0016 - val_loss: 0.0042 - val_error_to_signal: 0.0043
Epoch 104/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0023 - error_to_signal: 0.0023 - val_loss: 0.0016 - val_error_to_signal: 0.0016
Epoch 105/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0013 - val_loss: 0.0466 - val_error_to_signal: 0.0468
Epoch 106/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0029 - error_to_signal: 0.0029 - val_loss: 0.0019 - val_error_to_signal: 0.0019
Epoch 107/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 0.0021 - val_error_to_signal: 0.0021
Epoch 108/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0015 - error_to_signal: 0.0015 - val_loss: 0.0033 - val_error_to_signal: 0.0033
Epoch 109/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0033 - val_error_to_signal: 0.0033
Epoch 110/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0016 - val_error_to_signal: 0.0016
Epoch 111/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 0.0167 - val_error_to_signal: 0.0168
Epoch 112/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0017 - error_to_signal: 0.0017 - val_loss: 0.0014 - val_error_to_signal: 0.0014
Epoch 113/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 0.0010 - val_error_to_signal: 0.0010
Epoch 114/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0014 - error_to_signal: 0.0014 - val_loss: 0.0032 - val_error_to_signal: 0.0032
Epoch 115/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0016 - error_to_signal: 0.0016 - val_loss: 0.0079 - val_error_to_signal: 0.0079
Epoch 116/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0020 - error_to_signal: 0.0020 - val_loss: 0.0022 - val_error_to_signal: 0.0022
Epoch 117/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0017 - error_to_signal: 0.0017 - val_loss: 0.0020 - val_error_to_signal: 0.0020
Epoch 118/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0038 - val_error_to_signal: 0.0038
Epoch 119/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0010 - val_error_to_signal: 0.0010
Epoch 120/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0012 - val_error_to_signal: 0.0012
Epoch 121/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0010 - error_to_signal: 0.0010 - val_loss: 0.0010 - val_error_to_signal: 0.0010
Epoch 122/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0021 - val_error_to_signal: 0.0021
Epoch 123/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0016 - error_to_signal: 0.0016 - val_loss: 0.0023 - val_error_to_signal: 0.0023
Epoch 124/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0014 - error_to_signal: 0.0014 - val_loss: 0.0036 - val_error_to_signal: 0.0036
Epoch 125/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0010 - error_to_signal: 0.0010 - val_loss: 7.4354e-04 - val_error_to_signal: 7.4766e-04
Epoch 126/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0272 - val_error_to_signal: 0.0273
Epoch 127/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0029 - error_to_signal: 0.0030 - val_loss: 0.0078 - val_error_to_signal: 0.0079
Epoch 128/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0022 - error_to_signal: 0.0022 - val_loss: 0.0012 - val_error_to_signal: 0.0013
Epoch 129/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0019 - val_error_to_signal: 0.0019
Epoch 130/200
211/211 [==============================] - 2s 8ms/step - loss: 9.4899e-04 - error_to_signal: 9.4855e-04 - val_loss: 9.3362e-04 - val_error_to_signal: 9.3764e-04
Epoch 131/200
211/211 [==============================] - 2s 8ms/step - loss: 8.0594e-04 - error_to_signal: 8.0625e-04 - val_loss: 0.0015 - val_error_to_signal: 0.0015
Epoch 132/200
211/211 [==============================] - 2s 8ms/step - loss: 9.6023e-04 - error_to_signal: 9.5975e-04 - val_loss: 0.0021 - val_error_to_signal: 0.0021
Epoch 133/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0010 - val_error_to_signal: 0.0010
Epoch 134/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0015 - error_to_signal: 0.0015 - val_loss: 0.0466 - val_error_to_signal: 0.0468
Epoch 135/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0145 - error_to_signal: 0.0145 - val_loss: 0.0037 - val_error_to_signal: 0.0037
Epoch 136/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0017 - error_to_signal: 0.0017 - val_loss: 0.0011 - val_error_to_signal: 0.0011
Epoch 137/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0011 - val_error_to_signal: 0.0011
Epoch 138/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0014 - val_error_to_signal: 0.0014
Epoch 139/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 8.3526e-04 - val_error_to_signal: 8.3683e-04
Epoch 140/200
211/211 [==============================] - 2s 8ms/step - loss: 9.0384e-04 - error_to_signal: 9.1372e-04 - val_loss: 0.0022 - val_error_to_signal: 0.0022
Epoch 141/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 0.0013 - val_error_to_signal: 0.0013
Epoch 142/200
211/211 [==============================] - 2s 8ms/step - loss: 9.6752e-04 - error_to_signal: 9.6630e-04 - val_loss: 9.4907e-04 - val_error_to_signal: 9.5110e-04
Epoch 143/200
211/211 [==============================] - 2s 9ms/step - loss: 9.7268e-04 - error_to_signal: 9.7010e-04 - val_loss: 0.0014 - val_error_to_signal: 0.0014
Epoch 144/200
211/211 [==============================] - 2s 8ms/step - loss: 9.5414e-04 - error_to_signal: 9.5881e-04 - val_loss: 8.5497e-04 - val_error_to_signal: 8.5948e-04
Epoch 145/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0010 - error_to_signal: 0.0010 - val_loss: 0.0049 - val_error_to_signal: 0.0050
Epoch 146/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0091 - val_error_to_signal: 0.0091
Epoch 147/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0034 - error_to_signal: 0.0034 - val_loss: 0.0017 - val_error_to_signal: 0.0017
Epoch 148/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0011 - val_error_to_signal: 0.0012
Epoch 149/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0016 - error_to_signal: 0.0016 - val_loss: 0.0015 - val_error_to_signal: 0.0016
Epoch 150/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0010 - error_to_signal: 0.0010 - val_loss: 0.0016 - val_error_to_signal: 0.0016
Epoch 151/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0016 - val_error_to_signal: 0.0016
Epoch 152/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 0.0015 - val_error_to_signal: 0.0015
Epoch 153/200
211/211 [==============================] - 2s 8ms/step - loss: 9.0517e-04 - error_to_signal: 9.0356e-04 - val_loss: 0.0017 - val_error_to_signal: 0.0017
Epoch 154/200
211/211 [==============================] - 2s 8ms/step - loss: 9.1563e-04 - error_to_signal: 9.1362e-04 - val_loss: 0.0021 - val_error_to_signal: 0.0021
Epoch 155/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 9.8971e-04 - val_error_to_signal: 9.9413e-04
Epoch 156/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0010 - error_to_signal: 0.0010 - val_loss: 0.0010 - val_error_to_signal: 0.0010
Epoch 157/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0014 - error_to_signal: 0.0014 - val_loss: 0.0011 - val_error_to_signal: 0.0011
Epoch 158/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 9.3431e-04 - val_error_to_signal: 9.4854e-04
Epoch 159/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0012 - val_error_to_signal: 0.0013
Epoch 160/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0013 - val_error_to_signal: 0.0013
Epoch 161/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 0.0100 - val_error_to_signal: 0.0100
Epoch 162/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0018 - error_to_signal: 0.0019 - val_loss: 0.0033 - val_error_to_signal: 0.0033
Epoch 163/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0016 - error_to_signal: 0.0016 - val_loss: 0.0012 - val_error_to_signal: 0.0012
Epoch 164/200
211/211 [==============================] - 2s 8ms/step - loss: 8.8617e-04 - error_to_signal: 8.9238e-04 - val_loss: 0.0015 - val_error_to_signal: 0.0015
Epoch 165/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0015 - error_to_signal: 0.0015 - val_loss: 0.0023 - val_error_to_signal: 0.0023
Epoch 166/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 0.0032 - val_error_to_signal: 0.0032
Epoch 167/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 8.4873e-04 - val_error_to_signal: 8.5386e-04
Epoch 168/200
211/211 [==============================] - 2s 8ms/step - loss: 8.2810e-04 - error_to_signal: 8.2712e-04 - val_loss: 7.2167e-04 - val_error_to_signal: 7.2232e-04
Epoch 169/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0010 - error_to_signal: 0.0010 - val_loss: 0.0015 - val_error_to_signal: 0.0015
Epoch 170/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0021 - error_to_signal: 0.0021 - val_loss: 8.5021e-04 - val_error_to_signal: 8.5489e-04
Epoch 171/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0017 - val_error_to_signal: 0.0017
Epoch 172/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 0.0014 - val_error_to_signal: 0.0015
Epoch 173/200
211/211 [==============================] - 2s 8ms/step - loss: 8.8963e-04 - error_to_signal: 8.8688e-04 - val_loss: 8.0980e-04 - val_error_to_signal: 8.0922e-04
Epoch 174/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 0.0014 - val_error_to_signal: 0.0014
Epoch 175/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0010 - error_to_signal: 0.0010 - val_loss: 0.0011 - val_error_to_signal: 0.0011
Epoch 176/200
211/211 [==============================] - 2s 8ms/step - loss: 9.7862e-04 - error_to_signal: 9.8072e-04 - val_loss: 0.0047 - val_error_to_signal: 0.0047
Epoch 177/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0018 - error_to_signal: 0.0017 - val_loss: 7.5135e-04 - val_error_to_signal: 7.5702e-04
Epoch 178/200
211/211 [==============================] - 2s 8ms/step - loss: 9.6539e-04 - error_to_signal: 9.7385e-04 - val_loss: 0.0052 - val_error_to_signal: 0.0052
Epoch 179/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 0.0015 - val_error_to_signal: 0.0015
Epoch 180/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0010 - error_to_signal: 0.0010 - val_loss: 0.0012 - val_error_to_signal: 0.0012
Epoch 181/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0012 - error_to_signal: 0.0012 - val_loss: 0.0013 - val_error_to_signal: 0.0013
Epoch 182/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0011 - error_to_signal: 0.0011 - val_loss: 6.8344e-04 - val_error_to_signal: 6.8892e-04
Epoch 183/200
211/211 [==============================] - 2s 8ms/step - loss: 9.3680e-04 - error_to_signal: 9.4989e-04 - val_loss: 0.0163 - val_error_to_signal: 0.0164
Epoch 184/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0312 - error_to_signal: 0.0310 - val_loss: 0.0074 - val_error_to_signal: 0.0074
Epoch 185/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0037 - error_to_signal: 0.0037 - val_loss: 0.0022 - val_error_to_signal: 0.0022
Epoch 186/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0024 - error_to_signal: 0.0024 - val_loss: 0.0024 - val_error_to_signal: 0.0024
Epoch 187/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0019 - error_to_signal: 0.0019 - val_loss: 0.0023 - val_error_to_signal: 0.0024
Epoch 188/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0018 - error_to_signal: 0.0019 - val_loss: 0.2824 - val_error_to_signal: 0.2836
Epoch 189/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0131 - error_to_signal: 0.0131 - val_loss: 0.0026 - val_error_to_signal: 0.0026
Epoch 190/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0022 - error_to_signal: 0.0022 - val_loss: 0.0017 - val_error_to_signal: 0.0017
Epoch 191/200
211/211 [==============================] - 2s 9ms/step - loss: 0.0016 - error_to_signal: 0.0016 - val_loss: 0.0015 - val_error_to_signal: 0.0015
Epoch 192/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0014 - error_to_signal: 0.0014 - val_loss: 0.0015 - val_error_to_signal: 0.0015
Epoch 193/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0015 - error_to_signal: 0.0015 - val_loss: 0.0023 - val_error_to_signal: 0.0023
Epoch 194/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0015 - error_to_signal: 0.0015 - val_loss: 0.0013 - val_error_to_signal: 0.0013
Epoch 195/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0015 - val_error_to_signal: 0.0015
Epoch 196/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0014 - error_to_signal: 0.0015 - val_loss: 0.0028 - val_error_to_signal: 0.0028
Epoch 197/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0015 - error_to_signal: 0.0016 - val_loss: 0.0026 - val_error_to_signal: 0.0026
Epoch 198/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0018 - error_to_signal: 0.0018 - val_loss: 0.0010 - val_error_to_signal: 0.0011
Epoch 199/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0019 - val_error_to_signal: 0.0019
Epoch 200/200
211/211 [==============================] - 2s 8ms/step - loss: 0.0013 - error_to_signal: 0.0013 - val_loss: 0.0020 - val_error_to_signal: 0.0020
Running prediction..
Plotting results..
Error to signal (with pre-emphasis filter):  0.002925221
Error to signal (no pre-emphasis filter):  0.0029252213

Validation Loss is `inf`

I've run into issues where the validation loss is inf during training. I think there might be an issue with the loss function

Investigate using error to signal with pre-emphasis filter and custom dataloader

A new method of loading the data by batch was developed and applied to the Colab notebook. This method caused the original error to signal loss calculation to blow up, so the loss function was changed to MSE. This fixed the out of memory issues by loading the data by batch_size, instead of all at once or in large chunks. However, the original error to signal loss produces more accurate models, especially on highly distorted/complex guitar signals.

Investigate using the original error to signal loss function with the custom Sequence dataloader class from the Colab notebook.

Update: It looks like the pre-emphasis filter is calculated incorrectly, as noted here:
GuitarML/PedalNetRT#16 (comment)
Apply the fix of using [t-1] and see if this fixed the instability issues.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.