neuropercolation/evaluation/2Layer Activity.py
2023-09-30 19:53:06 +02:00

82 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
"""
Created on Tue Aug 30 14:25:12 2022
@author: timof
"""
import sys
import os
import json
from plot import qtplot
import math as m
import numpy as np
vect = np.vectorize
@vect
def log2(x):
try:
return m.log2(x)
except ValueError:
if x==0:
return float(0)
else:
raise
def new_folder(path):
if not os.path.exists(path):
os.makedirs(path)
return path
phase = np.vectorize(lambda x,y: (m.atan2(y,x)+m.pi)%(2*m.pi)-m.pi)
diff = np.vectorize(lambda x,y: (y-x+m.pi)%(2*m.pi)-m.pi)
H2 = lambda x: -x*m.log2(x)-(1-x)*m.log2(1-x)
path = '/cloud/Public/_data/neuropercolation/2lay/steps=100100/'
suffix = ''
chi = chr(967)
vareps = chr(949)
vals = [[],[]]
runsteps = 1000100
eps_space = np.linspace(0.005, 0.5, 100)
eps_space = eps_space[1::2]
dims = list(range(3,10))#+[16,49]
mode='density'
ma=[]
s=[]
k=[]
mk=[]
lastkurt=None
for dim in dims[-1:]:
dimpath = new_folder(path + f'dim={dim:02}/')
for epsilon in eps_space[:]:
with open(dimpath+f"eps={round(epsilon,3):.3f}_activation.txt", 'r', encoding='utf-8') as f:
activation = np.array(json.load(f)[:500])
activation = list(zip(*activation))
qtplot(f"Activity time series for eps={round(epsilon,3):.3f}",
[list(range(500))]*2,
activation,
x_tag = 'time step',
y_tag = f'activity density',
y_range = (-1,1),
export=True,
path=dimpath+"evolution/",
filename=f'eps={round(epsilon,3):.3f}_evolution.png',
close=True)
mode = 'density'
#%%