Erhalten Sie weiterhin ein Wahlfehler bei der Verwendung von Neurolib (Modellanpassung)Python

Python-Programme
Anonymous
 Erhalten Sie weiterhin ein Wahlfehler bei der Verwendung von Neurolib (Modellanpassung)

Post by Anonymous »

Hauptfehler: < /p>
PicklingError:
Can't pickle :
it's not the same object as neurolib.utils.parameterSpace.ParameterSpace
< /code>
Hier ist mein Code: < /p>
# wcisp_gridsearch_final.py

# --- Core Imports ---
import sys
import os
import dill

os.environ["NO_PROXY"] = "localhost,127.0.0.1" # Prevent network-related hangs
os.environ["OBJC_DISABLE_INITIALIZE_FORK_SAFETY"] = "YES" # macOS specific
import numpy as np
from multiprocessing import set_start_method
import gc
import importlib

# --- Configure multiprocessing first ---
set_start_method("spawn", force=True)

# --- Add local module path ---
sys.path.append('/Users/pbj/Documents/Github/srg-wb-tms-modeling/wbm')

# --- Import your custom model ---
from wcisp import WCISP

# --- Neurolib Setup ---
from importlib import reload
from neurolib.optimize.exploration.exploration import BoxSearch
import neurolib.utils.parameterSpace as ps # Import the MODULE, not just the class
from neurolib.utils.parameterSpace import ParameterSpace
importlib.reload(ps)
ParameterSpace = ps.ParameterSpace

# --- Environment Configuration ---
os.environ["OMP_NUM_THREADS"] = "1" # Disable OpenMP threading
os.environ["HDF5_USE_FILE_LOCKING"] = "FALSE" # Prevent HDF5 locking issues

# --- Debug Information ---
print("\n=== Environment Verification ===")
print(f"Python executable: {sys.executable}")
print(f"NumPy version: {np.__version__}")
import pickle
pickle.Pickler = dill.Pickler
pickle.Unpickler = dill.Unpickler

try:
import tables
print(f"PyTables version: {tables.__version__}")
print(f"PyTables linked to HDF5: {tables.get_hdf5_version()}")
except ImportError as e:
print(f"PyTables import failed: {e}")
raise

# --- Main Execution Block ---
if __name__ == "__main__":
# --- Load connectivity data ---
Cmat = np.loadtxt('Abeysuriya_cmat.csv', delimiter=',')
Dmat = np.loadtxt('Abeysuriya_dmat.csv', delimiter=',') * 100 # Convert to cm

# --- Test model ---
test_model = WCISP(
Cmat=Cmat,
Dmat=Dmat * 0.1, # Convert cm to mm
duration=30,
exc_ext_baseline=0.31,
K_gl=0.22,
c_ie_0=-3.8
)
test_model.run()

# --- Parameter Space ---
params = ParameterSpace({
"K_gl": np.linspace(0.1, 1.0, 5),
"c_ee": np.linspace(2.5, 4.5, 3),
"c_ei": np.linspace(2.5, 4.5, 3),
"rho": [0.1, 0.15, 0.2],
"exc_ext_baseline": np.linspace(0.1, 0.5, 5),
"c_ie_0": np.linspace(-4.5, -1.5, 5),
}, kind="grid")

gc.disable()

# --- Grid Search Setup ---
search = BoxSearch(
model=WCISP(Cmat=Cmat, Dmat=Dmat * 0.1, duration=30),
parameterSpace=params,
filename="wcisp-gridsearch.hdf"
)

# --- Safe Execution ---
search.run(
multiprocessing=False, # Disable until environment is stable
chunkwise=True,
bold=True,
backend="sequential"
# Reduce verbosity
)

print("\nGrid search completed successfully!")
< /code>
Ich habe ein paar Dinge ausprobiert: Cretaing neue Umgebungen und installierte kompatible Versionen von Paketen sowie Härtung von Umgebern < /p>
export PYTHONHASHSEED=0
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
< /code>
Ich bin mir nicht sicher, was falsch ist, würde etwas Hilfe lieben! Sind seit einiger Zeit daran festgehalten.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post