JuliaPy / JuliaPy/PyCall.jl

multiprocessing problem

Abierto
#755 1 comentario 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Julia
Estrellas
1.5k
Forks
186
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

I tried to call PyStan using PyCall in Windows, but found repeating ``ERROR: unknown option `-c` ``.

Example:
```julia
using PyCall

pystan = pyimport("pystan")

schools_code = """
data {
vector[8] y; // estimated treatment effects
}
parameters {
real mu;
}
model {
y ~ normal(mu, 1.0);
}
"""

schools_dat = Dict("y" => [28, 8, -3, 7, -1, 1, 18, 12],)

sm = pystan.StanModel(model_code=schools_code)
fit = sm.sampling(data=schools_dat, iter=1000, chains=4)
```

Since I encountered a similar problem in pymc, I replaced `num_chains=4` with `num_chains=1` and "fixed" it. But it is still a problem considering exactly the same code works in pure Python.

I guess that the problem is due to multiprocessing (maybe only on Windows), so PyTorch `dataloader`, a well known lightweight multiprocessing caller is tested. Still, `num_workers=0` (non-multiprocessing) works but `num_workers=4` like the following example will not work.

Example:
```julia
using PyCall

torch = pyimport("torch")
torchvision = pyimport("torchvision")
transforms = pyimport("torchvision.transforms")
datasets = pyimport("torchvision.datasets")

dataset = datasets.FakeData(transform=transforms.ToTensor())
dataloader = torch.utils.data.DataLoader(dataset, batch_size=10, num_workers=4)

for batch in dataloader
println(batch)
break
end
```

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Línea de trabajo

Comienza reproduciendo los ejemplos de PyCall en Windows y compara la configuración de un solo proceso con la de multiprocessing para PyStan y PyTorch DataLoader. El payload no menciona archivos ni tests del repositorio, así que primero localiza el punto de entrada de multiprocessing de PyCall y determina si el error `-c` es específico de Windows; se considera terminado cuando los casos mostrados con varios workers funcionan sin el error.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
julia, python, pytorch
Área
backend, tooling
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Necesita aclaración
Aptitud para principiantes
25/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.