From 1f25887e55ae8c7607ca86caf8b5ada1b2cab3a0 Mon Sep 17 00:00:00 2001
From: pilavciy <yusuf-yigit.pilavci@grenoble-inp.fr>
Date: Tue, 26 Mar 2024 11:16:53 +0100
Subject: [PATCH] clean up

---
 denoising-plots/denoised_via_kerreg.pdf | Bin 28303 -> 0 bytes
 denoising-plots/examples.ipynb          | 197 ------------------------
 2 files changed, 197 deletions(-)
 delete mode 100644 denoising-plots/denoised_via_kerreg.pdf
 delete mode 100644 denoising-plots/examples.ipynb

diff --git a/denoising-plots/denoised_via_kerreg.pdf b/denoising-plots/denoised_via_kerreg.pdf
deleted file mode 100644
index c129e230aed54d8196152bf497e39825b3c7b3b7..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 28303
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

diff --git a/denoising-plots/examples.ipynb b/denoising-plots/examples.ipynb
deleted file mode 100644
index e9e8b9d..0000000
--- a/denoising-plots/examples.ipynb
+++ /dev/null
@@ -1,197 +0,0 @@
-{
- "cells": [
-  {
-   "cell_type": "code",
-   "execution_count": 1,
-   "id": "6db15641",
-   "metadata": {},
-   "outputs": [
-    {
-     "data": {
-      "text/html": [],
-      "text/plain": [
-       "<IPython.core.display.HTML object>"
-      ]
-     },
-     "metadata": {},
-     "output_type": "display_data"
-    },
-    {
-     "name": "stderr",
-     "output_type": "stream",
-     "text": [
-      "\u001b[36m(pid=3980984)\u001b[0m /usr/lib/python3/dist-packages/scipy/__init__.py:146: UserWarning: A NumPy version >=1.17.3 and <1.25.0 is required for this version of SciPy (detected version 1.26.4\n",
-      "\u001b[36m(pid=3980984)\u001b[0m   warnings.warn(f\"A NumPy version >={np_minversion} and <{np_maxversion}\"\n",
-      "2024-03-14 15:03:03,729\tWARNING tune.py:186 -- Stop signal received (e.g. via SIGINT/Ctrl+C), ending Ray Tune run. This will try to checkpoint the experiment state one last time. Press CTRL+C (or send SIGINT/SIGKILL/SIGTERM) to skip. \n",
-      "2024-03-14 15:03:09,319\tWARNING tune.py:1057 -- Experiment has been interrupted, but the most recent state was saved.\n",
-      "Resume experiment with: Tuner.restore(path=\"/home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04\", trainable=...)\n",
-      "2024-03-14 15:03:15,927\tWARNING experiment_analysis.py:193 -- Failed to fetch metrics for 17 trial(s):\n",
-      "- objective_STIS_99690_00970: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00970: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00970_970_beta1=100.0000,beta2=0.0100,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph__2024-03-14_15-02-55')\n",
-      "- objective_STIS_99690_00971: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00971: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00971_971_beta1=10.0000,beta2=0.0100,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph_a_2024-03-14_15-02-55')\n",
-      "- objective_STIS_99690_00972: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00972: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00972_972_beta1=1.0000,beta2=0.0100,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph_a5_2024-03-14_15-02-55')\n",
-      "- objective_STIS_99690_00974: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00974: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00974_974_beta1=0.0100,beta2=0.0100,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph_a5_2024-03-14_15-02-55')\n",
-      "- objective_STIS_99690_00976: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00976: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00976_976_beta1=10.0000,beta2=100.0000,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph_2024-03-14_15-03-00')\n",
-      "- objective_STIS_99690_00977: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00977: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00977_977_beta1=1.0000,beta2=100.0000,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph__2024-03-14_15-03-00')\n",
-      "- objective_STIS_99690_00978: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00978: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00978_978_beta1=0.1000,beta2=100.0000,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph__2024-03-14_15-03-00')\n",
-      "- objective_STIS_99690_00980: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00980: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00980_980_beta1=100.0000,beta2=10.0000,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph_2024-03-14_15-03-01')\n",
-      "- objective_STIS_99690_00982: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00982: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00982_982_beta1=1.0000,beta2=10.0000,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph_a_2024-03-14_15-03-01')\n",
-      "- objective_STIS_99690_00983: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00983: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00983_983_beta1=0.1000,beta2=10.0000,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph_a_2024-03-14_15-03-01')\n",
-      "- objective_STIS_99690_00984: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00984: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00984_984_beta1=0.0100,beta2=10.0000,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph_a_2024-03-14_15-03-01')\n",
-      "- objective_STIS_99690_00986: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00986: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00986_986_beta1=10.0000,beta2=1.0000,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph_a_2024-03-14_15-03-01')\n",
-      "- objective_STIS_99690_00987: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00987: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00987_987_beta1=1.0000,beta2=1.0000,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph_a5_2024-03-14_15-03-01')\n",
-      "- objective_STIS_99690_00988: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00988: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00988_988_beta1=0.1000,beta2=1.0000,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph_a5_2024-03-14_15-03-01')\n",
-      "- objective_STIS_99690_00989: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00989: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00989_989_beta1=0.0100,beta2=1.0000,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph_a5_2024-03-14_15-03-01')\n",
-      "- objective_STIS_99690_00990: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00990: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00990_990_beta1=100.0000,beta2=0.1000,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph__2024-03-14_15-03-01')\n",
-      "- objective_STIS_99690_00991: FileNotFoundError('Could not fetch metrics for objective_STIS_99690_00991: both result.json and progress.csv were not found at /home/ypilavci/ray_results/objective_STIS_2024-03-14_14-56-04/objective_STIS_99690_00991_991_beta1=10.0000,beta2=0.1000,lambdaS=0.0000,lambdax=0.0000,sigma2=0.0400,t=ref_ph_8d1a09f1,x=ref_ph_a_2024-03-14_15-03-03')\n"
-     ]
-    }
-   ],
-   "source": [
-    "import numpy as np\n",
-    "import scipy\n",
-    "import matplotlib.pyplot as plt\n",
-    "import quaternion  # load the quaternion module\n",
-    "import bispy as bsp\n",
-    "import torch\n",
-    "from utils import STIS,optimize_loop,snr_bivariate,param_search,objective_STIS,objective_KReSP,KReSP,plot_on_sphere\n",
-    "from ray import  tune,init\n",
-    "import pickle\n",
-    "\n",
-    "\n",
-    "init(num_cpus=16)\n",
-    "\n",
-    "## PLOT AN EXAMPLE \n",
-    "\n",
-    "np.random.seed(5)\n",
-    "N = 1024 # length of the signal\n",
-    "t = np.linspace(0, 2*np.pi/4, N) # time vector\n",
-    "dt = t[1]-t[0]\n",
-    "\n",
-    "# ellipse parameters - AM-FM-PM polarized \n",
-    "theta1 = np.pi/4 - 2*t\n",
-    "chi1 = np.pi/16 - t\n",
-    "phi1 = 0 \n",
-    "f0 = 25/N/dt \n",
-    "S0 = bsp.utils.windows.hanning(N)\n",
-    "\n",
-    "x_quad = bsp.signals.bivariateAMFM(S0, theta1, chi1, 2*np.pi*f0*t+ phi1)\n",
-    "x = quaternion.as_float_array(x_quad)[:,:2]\n",
-    "\n",
-    "\n",
-    "bsp.utils.visual.plot3D(t,x_quad)\n",
-    "plt.savefig(\"clean_sig.pdf\")\n",
-    "plt.close()\n",
-    "\n",
-    "sigma = 0.2\n",
-    "n = np.zeros([N,4])\n",
-    "noise_complex = np.random.randn(N,2)\n",
-    "y = x +sigma*noise_complex\n",
-    "\n",
-    "uH = np.imag(scipy.signal.hilbert(noise_complex[:,0]))\n",
-    "vH = np.imag(scipy.signal.hilbert(noise_complex[:,1]))\n",
-    "n[:,0] = noise_complex[:,0]\n",
-    "n[:,1] = noise_complex[:,1]\n",
-    "n[:,2] = uH\n",
-    "n[:,3] = vH\n",
-    "n = quaternion.from_float_array(n)\n",
-    "y_quad = sigma*n + x_quad # Noisy signal\n",
-    "\n",
-    "ax = plt.figure().add_subplot(projection='3d')\n",
-    "# ax.view_init(15,-135,0)\n",
-    "plt.title(\"Normalized Stokes Parameters\")\n",
-    "plt.tight_layout()\n",
-    "plot_on_sphere(y_quad,ax,label=\"noisy signal\",t=t,scatter=True)\n",
-    "plot_on_sphere(x_quad,ax,label=\"original signal\",scatter=False)\n",
-    "\n",
-    "plt.legend()\n",
-    "plt.tight_layout()\n",
-    "plt.savefig(\"noisy_sig_sphere.pdf\")\n",
-    "plt.close()\n",
-    "\n",
-    "bsp.utils.visual.plot3D(t,y_quad)\n",
-    "plt.savefig(\"noisy_sig.pdf\")\n",
-    "\n",
-    "\n",
-    "print(\"sigma: \" + str(sigma) + \" Noise SNR: \"+  str(snr_bivariate(x,y) ) )\n",
-    "search_space = {\"x\":tune.grid_search([x]),\"t\":tune.grid_search([t]),\"y\":tune.grid_search([y]),\"lambdax\": tune.grid_search((0.1)**np.linspace(5,15,7)), \"lambdaS\":  tune.grid_search((0.1)**np.linspace(5,10,7)) , \"beta1\":tune.grid_search((0.10)**np.linspace(-2,2,5)),\"beta2\":tune.grid_search((0.10)**np.linspace(-2,2,5)),\"sigma2\":tune.grid_search([sigma**2])}\n",
-    "config = param_search(objective_STIS,search_space)\n",
-    "model = STIS(t,y,lambdax=config[\"lambdax\"],lambdaS=config[\"lambdaS\"],beta1=config[\"beta1\"],beta2=config[\"beta2\"],sigma2=sigma**2,p=2)\n",
-    "optimizer = torch.optim.Adam(model.parameters(), lr=0.01)\n",
-    "model = optimize_loop(model,optimizer,numit=1000)\n",
-    "\n",
-    "x_stis = quaternion.from_float_array(model.Xquad.detach().numpy())\n",
-    "bsp.utils.visual.plot2D(t,x_stis)\n",
-    "plt.savefig(\"denoised_via_all_terms.pdf\")\n",
-    "\n",
-    "print(\"sigma: \" + str(sigma) + \" STIS SNR: \"+  str(snr_bivariate(x,model.X.detach().numpy())))\n",
-    "\n",
-    "\n",
-    "# NO STOKES REGULARIZATION  \n",
-    "search_space = {\"x\":tune.grid_search([x]),\"t\":tune.grid_search([t]),\"y\":tune.grid_search([y]),\"lambdax\": tune.grid_search((0.1)**np.linspace(5,15,7)), \"lambdaS\":tune.grid_search([0.0]) , \"beta1\":tune.grid_search([0.0]),\"beta2\":tune.grid_search([0.0]),\"sigma2\":tune.grid_search([sigma**2])}\n",
-    "config = param_search(objective_STIS,search_space)\n",
-    "model = STIS(t,y,lambdax=config[\"lambdax\"],lambdaS=config[\"lambdaS\"],beta1=config[\"beta1\"],beta2=config[\"beta2\"],sigma2=sigma**2,p=2)\n",
-    "optimizer = torch.optim.Adam(model.parameters(), lr=0.01)\n",
-    "model = optimize_loop(model,optimizer,numit=1000)\n",
-    "\n",
-    "print(\"sigma: \" + str(sigma) + \" STIS SNR: \"+  str((snr_bivariate(x,model.X.detach().numpy()))))\n",
-    "x_nostokes = quaternion.from_float_array(model.Xquad.detach().numpy())\n",
-    "bsp.utils.visual.plot2D(t,x_nostokes)\n",
-    "plt.savefig(\"denoised_via_no_stokes.pdf\")\n",
-    "\n",
-    "# ONLY SMOOTH STOKES\n",
-    "search_space = {\"x\":tune.grid_search([x]),\"t\":tune.grid_search([t]),\"y\":tune.grid_search([y]),\"lambdax\": tune.grid_search([0.0]), \"lambdaS\":  tune.grid_search((0.1)**np.linspace(5,10,7)) , \"beta1\":tune.grid_search((0.1)**np.linspace(-2,2,7)),\"beta2\":tune.grid_search((0.1)**np.linspace(-2,2,5)),\"sigma2\":tune.grid_search([sigma**2])}\n",
-    "config = param_search(objective_STIS,search_space)\n",
-    "model = STIS(t,y,lambdax=config[\"lambdax\"],lambdaS=config[\"lambdaS\"],beta1=config[\"beta1\"],beta2=config[\"beta2\"],sigma2=sigma**2,p=2)\n",
-    "optimizer = torch.optim.Adam(model.parameters(), lr=0.01)\n",
-    "model = optimize_loop(model,optimizer,numit=1000)\n",
-    "x_onlystokes = quaternion.from_float_array(model.Xquad.detach().numpy())\n",
-    "bsp.utils.visual.plot2D(t,x_onlystokes)\n",
-    "plt.savefig(\"denoised_via_no_signal_smoother.pdf\")\n",
-    "\n",
-    "print(\"sigma: \" + str(sigma) +  \" STIS SNR: \"+  str((snr_bivariate(x,model.X.detach().numpy()))))\n",
-    "\n",
-    "# Kernel regression on normalized \n",
-    "search_space = {\"x\":tune.grid_search([x]),\"t\":tune.grid_search([t]),\"y\":tune.grid_search([y]),\"alpha\": tune.grid_search((0.1)**np.linspace(5,15,5)),\"lambda_1\": tune.grid_search((0.1)**np.linspace(5,15,5)), \"lambda_s\":  tune.grid_search((0.1)**np.linspace(5,10,5)) , \"beta\":tune.grid_search((0.10)**np.linspace(-2,2,5)),\"gamma\":tune.grid_search((0.1)**np.linspace(0,1,5)),\"sigma2\":tune.grid_search([sigma**2])}\n",
-    "config = param_search(objective_KReSP,search_space)\n",
-    "model = KReSP(t,y,lambda_1=config[\"lambda_1\"],beta=config[\"beta\"],lambda_s=config[\"lambda_s\"],alpha=config[\"alpha\"],gamma=config[\"gamma\"],eps=10**-7,win_width=64,sigma2=sigma**2)\n",
-    "optimizer = torch.optim.Adam(model.parameters(), lr=0.01)\n",
-    "model = optimize_loop(model,optimizer,numit=300)\n",
-    "\n",
-    "\n",
-    "print(\"sigma: \" + str(sigma) + \" KReSP SNR: \"+  str(snr_bivariate(x,model.X.detach().numpy())))\n",
-    "x_kerreg = quaternion.from_float_array(model.Xquad.detach().numpy())\n",
-    "bsp.utils.visual.plot2D(t,x_kerreg)\n",
-    "plt.savefig(\"denoised_via_kerreg.pdf\")\n",
-    "\n",
-    "with open('example.pkl', 'wb') as f:\n",
-    "\tpickle.dump(x,f)\n",
-    "\tpickle.dump(y,f)\n",
-    "\tpickle.dump(x_stis,f)\n",
-    "\tpickle.dump(x_nostokes,f)\n",
-    "\tpickle.dump(x_onlystokes,f)\n",
-    "\tpickle.dump(x_kerreg,f)\n"
-   ]
-  }
- ],
- "metadata": {
-  "kernelspec": {
-   "display_name": "Python 3 (ipykernel)",
-   "language": "python",
-   "name": "python3"
-  },
-  "language_info": {
-   "codemirror_mode": {
-    "name": "ipython",
-    "version": 3
-   },
-   "file_extension": ".py",
-   "mimetype": "text/x-python",
-   "name": "python",
-   "nbconvert_exporter": "python",
-   "pygments_lexer": "ipython3",
-   "version": "3.10.12"
-  }
- },
- "nbformat": 4,
- "nbformat_minor": 5
-}
-- 
GitLab