132 lines
60 KiB
Plaintext
132 lines
60 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "134e7f9d",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Demo 3: Extracting activation functions\n",
|
|
"\n",
|
|
"The KAN diagrams give intuitive illustration, but sometimes we may also want to extract the values of activation functions for more quantitative tasks. Using the indexing convention introduced in the indexing notebook, each edge is indexed as $(l,i,j)$, where $l$ is the layer index, $i$ is the input neuron index, and $j$ is output neuron index."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "2075ef56",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 22 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"from kan import *\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"# create a KAN: 2D inputs, 1D output, and 5 hidden neurons. cubic spline (k=3), 5 grid intervals (grid=5).\n",
|
|
"model = KAN(width=[2,5,1], grid=5, k=3, seed=0)\n",
|
|
"x = torch.normal(0,1,size=(100,2))\n",
|
|
"model(x)\n",
|
|
"model.plot(beta=100)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "d3fe2e03",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 300x300 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"l = 0\n",
|
|
"i = 0\n",
|
|
"j = 3\n",
|
|
"x, y = model.get_fun(l,i,j)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "a9e62f17",
|
|
"metadata": {},
|
|
"source": [
|
|
"If we are interested in the range of some activation function, we can use get_range."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "1a978202",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"x range: [-2.32 , 2.70 ]\n",
|
|
"y range: [-0.11 , 0.24 ]\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"text/plain": [
|
|
"(tensor(-2.3217), tensor(2.6963), tensor(-0.1126), tensor(0.2444))"
|
|
]
|
|
},
|
|
"execution_count": 3,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"model.get_range(l,i,j)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "cc395fd0",
|
|
"metadata": {},
|
|
"outputs": [],
|
|
"source": []
|
|
}
|
|
],
|
|
"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.9.7"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|