Solución para la excepción de serialización de 32/64 bits en el modelo sklearn RandomForest

Si serializamos el modelo de bosque aleatorio usando joblib en una máquina de 64 bits, y luego descomprimimos en una máquina de 32 bits, hay una excepción:

ValueError: Buffer dtype mismatch, expected 'SIZE_t' but got 'long long' 

Esta pregunta se ha hecho antes: Scikits-Learn RandomForrest entrenado en python de 64 bits no se abre en python de 32 bits . Pero la pregunta no ha sido respondida desde 2014.

Código de ejemplo para aprender el modelo (en una máquina de 64 bits):

 modelPath="../" featureVec=... labelVec = ... forest = RandomForestClassifier() randomSearch = RandomizedSearchCV(forest, param_distributions=param_dict, cv=10, scoring='accuracy', n_iter=100, refit=True) randomSearch.fit(X=featureVec, y=labelVec) model = randomSearch.best_estimator_ joblib.dump(model, modelPath) 

Código de ejemplo para descomprimir en una máquina de 32 bits:

 modelPath="../" model = joblib.load(modelPkl) # ValueError thrown here 

Mi pregunta es: ¿hay alguna solución genérica para este problema si tenemos que aprender en una máquina de 64 bits y trasladarla a la máquina de 32 bits para la predicción?

Edición: Intenté utilizar pickle directamente en lugar de joblib. Todavía hay el mismo error. El error se produce en la biblioteca de pickle de núcleo (para joblib y pickle):

  File "/usr/lib/python2.7/pickle.py", line 1378, in load return Unpickler(file).load() File "/usr/lib/python2.7/pickle.py", line 858, in load dispatch[key](self) File "/usr/lib/python2.7/pickle.py", line 1133, in load_reduce value = func(*args) File "sklearn/tree/_tree.pyx", line 585, in sklearn.tree._tree.Tree.__cinit__ (sklearn/tree/_tree.c:7286) ValueError: Buffer dtype mismatch, expected 'SIZE_t' but got 'long long'