{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "id": "H6eOwX3UGpvG" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2025-01-07 11:12:58.334765: I tensorflow/core/util/port.cc:153] oneDNN custom operations are on. You may see slightly different numerical results due to floating-point round-off errors from different computation orders. To turn them off, set the environment variable `TF_ENABLE_ONEDNN_OPTS=0`.\n", "2025-01-07 11:12:58.412527: E external/local_xla/xla/stream_executor/cuda/cuda_fft.cc:485] Unable to register cuFFT factory: Attempting to register factory for plugin cuFFT when one has already been registered\n", "2025-01-07 11:12:58.459900: E external/local_xla/xla/stream_executor/cuda/cuda_dnn.cc:8454] Unable to register cuDNN factory: Attempting to register factory for plugin cuDNN when one has already been registered\n", "2025-01-07 11:12:58.470571: E external/local_xla/xla/stream_executor/cuda/cuda_blas.cc:1452] Unable to register cuBLAS factory: Attempting to register factory for plugin cuBLAS when one has already been registered\n", "2025-01-07 11:12:58.527198: I tensorflow/core/platform/cpu_feature_guard.cc:210] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", "To enable the following instructions: AVX2 AVX_VNNI FMA, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", "2025-01-07 11:12:59.359099: W tensorflow/compiler/tf2tensorrt/utils/py_utils.cc:38] TF-TRT Warning: Could not find TensorRT\n" ] } ], "source": [ "import pathlib\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "import pandas as pd\n", "import seaborn as sns\n", "# ML models\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.neighbors import KNeighborsRegressor\n", "from sklearn.ensemble import RandomForestRegressor\n", "from sklearn.model_selection import train_test_split\n", "# Multilayer Perceptron\n", "from keras import Model\n", "from keras.api.layers import Input\n", "from keras.api.layers import Dense\n", "from keras.api.layers import Dropout\n", "from keras.api.layers import concatenate\n", "from keras import optimizers\n", "from keras import backend\n", "from keras.api.layers import LeakyReLU, PReLU\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "id": "xO6mZcSAGyp7" }, "outputs": [], "source": [ "#!git clone https://github.com/simsekergun/photodetectors.git\n", "df = pd.read_csv(\"./MUTC1750designs.csv\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "id": "1qLZ_FkrHJJB" }, "outputs": [ { "data": { "text/plain": [ "(1755, 39)" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# let's take log10 of doping levels so that we deal with numbers in the similar ranges\n", "df[df.columns[22:40]] =np.log10(df[df.columns[22:40]])\n", "df.shape" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "id": "x5h23R0y1MXk" }, "outputs": [ { "data": { "text/html": [ "
\n", " | phasenoise | \n", "phasenoise_15mA | \n", "current | \n", "IR_max | \n", "decay_time | \n", "t1 | \n", "t2 | \n", "t3 | \n", "t4 | \n", "t5 | \n", "... | \n", "d8 | \n", "d9 | \n", "d10 | \n", "d11 | \n", "d12 | \n", "d13 | \n", "d14 | \n", "d15 | \n", "d16 | \n", "d17 | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "-161.516 | \n", "-170.938 | \n", "0.001713 | \n", "32002500000 | \n", "184.775 | \n", "20.7 | \n", "121.5 | \n", "6.0 | \n", "33.5 | \n", "96.7 | \n", "... | \n", "18.809560 | \n", "15.110590 | \n", "14.963316 | \n", "15.107210 | \n", "16.143015 | \n", "15.408240 | \n", "18.748188 | \n", "18.170262 | \n", "18.928396 | \n", "18.424882 | \n", "
1 | \n", "-162.136 | \n", "-171.316 | \n", "0.001812 | \n", "28499800000 | \n", "161.603 | \n", "76.7 | \n", "79.0 | \n", "85.4 | \n", "12.0 | \n", "77.6 | \n", "... | \n", "18.598791 | \n", "15.753583 | \n", "16.503791 | \n", "15.918030 | \n", "17.227887 | \n", "14.868644 | \n", "17.181844 | \n", "18.193125 | \n", "18.721811 | \n", "18.832509 | \n", "
2 | \n", "-162.661 | \n", "-172.271 | \n", "0.001641 | \n", "34642300000 | \n", "174.001 | \n", "86.5 | \n", "94.5 | \n", "7.0 | \n", "16.6 | \n", "111.4 | \n", "... | \n", "18.836957 | \n", "16.173186 | \n", "15.372912 | \n", "15.287802 | \n", "16.491362 | \n", "15.809560 | \n", "18.100371 | \n", "17.856124 | \n", "19.404834 | \n", "18.217484 | \n", "
3 rows × 39 columns
\n", "\n", " | phasenoise | \n", "phasenoise_15mA | \n", "current | \n", "IR_max | \n", "decay_time | \n", "t1 | \n", "t2 | \n", "t3 | \n", "t4 | \n", "t5 | \n", "... | \n", "d8 | \n", "d9 | \n", "d10 | \n", "d11 | \n", "d12 | \n", "d13 | \n", "d14 | \n", "d15 | \n", "d16 | \n", "d17 | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
count | \n", "1755.000000 | \n", "1755.000000 | \n", "1755.000000 | \n", "1.755000e+03 | \n", "1755.000000 | \n", "1755.000000 | \n", "1755.000000 | \n", "1755.000000 | \n", "1755.000000 | \n", "1755.000000 | \n", "... | \n", "1755.000000 | \n", "1755.000000 | \n", "1755.000000 | \n", "1755.000000 | \n", "1755.000000 | \n", "1755.000000 | \n", "1755.000000 | \n", "1755.000000 | \n", "1755.000000 | \n", "1755.000000 | \n", "
mean | \n", "-170.904159 | \n", "-177.668607 | \n", "0.003658 | \n", "5.396398e+10 | \n", "62.732325 | \n", "47.636524 | \n", "106.206610 | \n", "34.891556 | \n", "43.307134 | \n", "107.375670 | \n", "... | \n", "17.712256 | \n", "15.987027 | \n", "16.378908 | \n", "16.358700 | \n", "17.047689 | \n", "16.258266 | \n", "17.985147 | \n", "19.221367 | \n", "19.013471 | \n", "19.121494 | \n", "
std | \n", "3.845182 | \n", "2.248727 | \n", "0.002374 | \n", "1.190861e+10 | \n", "31.641076 | \n", "24.608927 | \n", "30.429793 | \n", "23.385138 | \n", "23.912232 | \n", "29.172582 | \n", "... | \n", "0.410801 | \n", "0.442477 | \n", "0.810166 | \n", "0.812304 | \n", "0.441059 | \n", "0.833403 | \n", "0.415166 | \n", "0.545513 | \n", "0.416695 | \n", "0.555979 | \n", "
min | \n", "-178.621000 | \n", "-183.613000 | \n", "0.001459 | \n", "2.849980e+10 | \n", "22.224300 | \n", "10.000000 | \n", "36.000000 | \n", "5.000000 | \n", "6.000000 | \n", "23.800000 | \n", "... | \n", "16.505150 | \n", "14.801404 | \n", "14.801404 | \n", "14.800029 | \n", "15.947434 | \n", "14.801404 | \n", "16.808886 | \n", "17.806858 | \n", "17.800029 | \n", "17.801404 | \n", "
25% | \n", "-173.773000 | \n", "-179.189500 | \n", "0.002360 | \n", "4.545390e+10 | \n", "37.899700 | \n", "31.850000 | \n", "90.300000 | \n", "15.000000 | \n", "15.000000 | \n", "95.900000 | \n", "... | \n", "17.482158 | \n", "15.761552 | \n", "15.868937 | \n", "15.837904 | \n", "16.781037 | \n", "15.708421 | \n", "17.797268 | \n", "18.905256 | \n", "18.872714 | \n", "18.790637 | \n", "
50% | \n", "-170.027000 | \n", "-177.815000 | \n", "0.002539 | \n", "5.236430e+10 | \n", "53.955800 | \n", "50.000000 | \n", "100.000000 | \n", "26.800000 | \n", "47.000000 | \n", "100.000000 | \n", "... | \n", "17.698970 | \n", "16.000000 | \n", "16.110590 | \n", "16.064458 | \n", "17.093422 | \n", "16.000000 | \n", "18.000000 | \n", "19.155336 | \n", "19.000000 | \n", "19.000000 | \n", "
75% | \n", "-168.358000 | \n", "-176.220500 | \n", "0.003013 | \n", "6.194950e+10 | \n", "75.028400 | \n", "52.600000 | \n", "120.350000 | \n", "47.200000 | \n", "60.400000 | \n", "120.300000 | \n", "... | \n", "17.884795 | \n", "16.254063 | \n", "16.993636 | \n", "16.980648 | \n", "17.455600 | \n", "16.897624 | \n", "18.118923 | \n", "19.850603 | \n", "19.167317 | \n", "19.589391 | \n", "
max | \n", "-161.516000 | \n", "-170.334000 | \n", "0.009902 | \n", "9.755770e+10 | \n", "184.775000 | \n", "178.000000 | \n", "199.900000 | \n", "100.000000 | \n", "99.900000 | \n", "199.800000 | \n", "... | \n", "18.987666 | \n", "17.193125 | \n", "17.710963 | \n", "17.687529 | \n", "17.848805 | \n", "17.923244 | \n", "19.873902 | \n", "20.193125 | \n", "20.193125 | \n", "20.195900 | \n", "
8 rows × 39 columns
\n", "