JuliaAI / MLJModels.jl

Home of the MLJ model registry and tools for model queries and mode code loading
MIT License
81 stars 27 forks source link

Failure on MacOS for Julia 1.3, 1.4: Intel MKL Error #212

Closed ablaom closed 4 years ago

ablaom commented 4 years ago

Further to #211 :

I have introduce CI on this branch for julia 1.3 and julia 1.4, where testing in now failing for MacOS.

The error is triggered by testing of the wrapped scikit-learn clustering models. According to the travis logs, the conda installations for scikit-learn are the same for linux and macOS, excect that macOS has an additional package llvm-openmp-4.0.1 installed.

Any help at all on this one would be appreciated. In particular, should I regard this as julia 1.3/1.4 error?

Here is the tail of the stack trace

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.
540Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.
541
542Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.
543
544Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.
545
546Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.
547
548
549Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.
550Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.
551
552signal (11): Segmentation fault: 11
553in expression starting at /Users/travis/build/alan-turing-institute/MLJModels.jl/test/ScikitLearn/clustering.jl:139
554thread_team_ctxt_commit_callback at /Users/travis/.julia/conda/3/lib/libmkl_intel_thread.dylib (unknown line)
555mkl_lapack_thread_team_ctxt_commit_task at /Users/travis/.julia/conda/3/lib/libmkl_core.dylib (unknown line)
556mkl_lapack_dgetrf at /Users/travis/.julia/conda/3/lib/libmkl_intel_thread.dylib (unknown line)
557Allocations: 388377569 (Pool: 388284978; Big: 92591); GC: 274
558ERROR: Package MLJModels errored during testing
559Stacktrace:
560 [1] pkgerror(::String, ::Vararg{String,N} where N) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.3/Pkg/src/Types.jl:113
561 [2] #test#131(::Bool, ::Nothing, ::Cmd, ::Cmd, ::typeof(Pkg.Operations.test), ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.3/Pkg/src/Operations.jl:1372
562 [3] #test at ./none:0 [inlined]
563 [4] #test#62(::Bool, ::Nothing, ::Cmd, ::Cmd, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}, ::typeof(Pkg.API.test), ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.3/Pkg/src/API.jl:253
564 [5] (::Pkg.API.var"#kw##test")(::NamedTuple{(:coverage,),Tuple{Bool}}, ::typeof(Pkg.API.test), ::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}) at ./none:0
565 [6] #test#58 at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.3/Pkg/src/API.jl:233 [inlined]
566 [7] (::Pkg.API.var"#kw##test")(::NamedTuple{(:coverage,),Tuple{Bool}}, ::typeof(Pkg.API.test)) at ./none:0
567 [8] top-level scope at none:1
tlienart commented 4 years ago

Adding some considerations: commenting out the clustering tests is not enough, the regression and classification tests also fail horribly; there's something seriously wrong here.

WARNING: replacing module TestScikitLearn.
[ Info: Precompiling RDatasets [ce6b1742-4840-55fa-b093-852dadbb1d8b]
ARD: Test Failed at /Users/tlienart/.julia/dev/MLJModels/test/ScikitLearn/linear-regressors.jl:18
  Expression: isapprox((f[1]).score(X, y), 0.998859, rtol = 1.0e-5)
   Evaluated: isapprox(-24375.10250848991, 0.998859; rtol = 1.0e-5)
Stacktrace:
 [1] top-level scope at /Users/tlienart/.julia/dev/MLJModels/test/ScikitLearn/linear-regressors.jl:18
 [2] top-level scope at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1114
 [3] top-level scope at /Users/tlienart/.julia/dev/MLJModels/test/ScikitLearn/linear-regressors.jl:16
ARD: Test Failed at /Users/tlienart/.julia/dev/MLJModels/test/ScikitLearn/linear-regressors.jl:19
  Expression: isapprox(norm(predict(m, f, X) .- y) / norm(y), 0.032693, rtol = 1.0e-5)
   Evaluated: isapprox(151.13364588982455, 0.032693; rtol = 1.0e-5)
Stacktrace:
 [1] top-level scope at /Users/tlienart/.julia/dev/MLJModels/test/ScikitLearn/linear-regressors.jl:19
 [2] top-level scope at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1114
 [3] top-level scope at /Users/tlienart/.julia/dev/MLJModels/test/ScikitLearn/linear-regressors.jl:16
BayesianRidge: Error During Test at /Users/tlienart/.julia/dev/MLJModels/test/ScikitLearn/linear-regressors.jl:25
  Got exception outside of a @test
  PyError ($(Expr(:escape, :(ccall(#= /Users/tlienart/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:43 =# @pysym(:PyObject_Call), PyPtr, (PyPtr, PyPtr, PyPtr), o, pyargsptr, kw))))) <class 'numpy.linalg.LinAlgError'>
  LinAlgError('SVD did not converge')
    File "/Users/tlienart/.julia/conda/3/lib/python3.7/site-packages/sklearn/linear_model/bayes.py", line 215, in fit
      U, S, Vh = linalg.svd(X, full_matrices=False)
    File "/Users/tlienart/.julia/conda/3/lib/python3.7/site-packages/scipy/linalg/decomp_svd.py", line 132, in svd
      raise LinAlgError("SVD did not converge")

  Stacktrace:
   [1] pyerr_check at /Users/tlienart/.julia/packages/PyCall/zqDXB/src/exception.jl:60 [inlined]
   [2] pyerr_check at /Users/tlienart/.julia/packages/PyCall/zqDXB/src/exception.jl:64 [inlined]
   [3] _handle_error(::String) at /Users/tlienart/.julia/packages/PyCall/zqDXB/src/exception.jl:81
   [4] macro expansion at /Users/tlienart/.julia/packages/PyCall/zqDXB/src/exception.jl:95 [inlined]
   [5] #110 at /Users/tlienart/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:43 [inlined]
   [6] disable_sigint at ./c.jl:446 [inlined]
   [7] __pycall! at /Users/tlienart/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:42 [inlined]
   [8] _pycall!(::PyCall.PyObject, ::PyCall.PyObject, ::Tuple{Array{Float64,2},Array{Float64,1}}, ::Int64, ::Ptr{Nothing}) at /Users/tlienart/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:29
   [9] _pycall!(::PyCall.PyObject, ::PyCall.PyObject, ::Tuple{Array{Float64,2},Array{Float64,1}}, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/tlienart/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:11
   [10] (::PyCall.PyObject)(::Array{Float64,2}, ::Vararg{Any,N} where N; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/tlienart/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:86
   [11] (::PyCall.PyObject)(::Array{Float64,2}, ::Vararg{Any,N} where N) at /Users/tlienart/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:86
   [12] fit!(::PyCall.PyObject, ::Array{Float64,2}, ::Vararg{Any,N} where N; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/tlienart/.julia/packages/ScikitLearn/uiLep/src/Skcore.jl:100
   [13] fit!(::PyCall.PyObject, ::Array{Float64,2}, ::Array{Float64,1}) at /Users/tlienart/.julia/packages/ScikitLearn/uiLep/src/Skcore.jl:100
   [14] fit(::MLJModels.ScikitLearn_.BayesianRidgeRegressor, ::Int64, ::Array{Float64,2}, ::Array{Float64,1}) at /Users/tlienart/.julia/dev/MLJModels/src/ScikitLearn/ScikitLearn.jl:157
   [15] top-level scope at /Users/tlienart/.julia/dev/MLJModels/test/ScikitLearn/linear-regressors.jl:27
   [16] top-level scope at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1114
   [17] top-level scope at /Users/tlienart/.julia/dev/MLJModels/test/ScikitLearn/linear-regressors.jl:26
   [18] include(::Function, ::Module, ::String) at ./Base.jl:380
   [19] include at ./Base.jl:368 [inlined]
   [20] include(::String) at /Users/tlienart/.julia/dev/MLJModels/test/ScikitLearn/ScikitLearn.jl:1
   [21] top-level scope at /Users/tlienart/.julia/dev/MLJModels/test/ScikitLearn/ScikitLearn.jl:10
   [22] include(::String) at ./client.jl:441
   [23] top-level scope at /Users/tlienart/.julia/dev/MLJModels/test/runtests.jl:45
   [24] top-level scope at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.5/Test/src/Test.jl:1114
   [25] top-level scope at /Users/tlienart/.julia/dev/MLJModels/test/runtests.jl:45
   [26] include_string(::Function, ::Module, ::String, ::String) at ./loading.jl:1087
   [27] include_string at ./loading.jl:1095 [inlined]
   [28] include_string(::Module, ::String, ::String, ::Int64) at /Users/tlienart/.julia/packages/CodeTools/kosGY/src/eval.jl:30
   [29] (::Atom.var"#188#192"{String,Int64,String,Bool})() at /Users/tlienart/.julia/packages/Atom/wlPiw/src/eval.jl:111
   [30] withpath(::Atom.var"#188#192"{String,Int64,String,Bool}, ::String) at /Users/tlienart/.julia/packages/CodeTools/kosGY/src/utils.jl:30
   [31] withpath(::Function, ::String) at /Users/tlienart/.julia/packages/Atom/wlPiw/src/eval.jl:9
   [32] #187 at /Users/tlienart/.julia/packages/Atom/wlPiw/src/eval.jl:110 [inlined]
   [33] with_logstate(::Atom.var"#187#191"{String,Int64,String,Bool}, ::Base.CoreLogging.LogState) at ./logging.jl:398
   [34] with_logger at ./logging.jl:505 [inlined]
   [35] #186 at /Users/tlienart/.julia/packages/Atom/wlPiw/src/eval.jl:109 [inlined]
   [36] hideprompt(::Atom.var"#186#190"{String,Int64,String,Bool}) at /Users/tlienart/.julia/packages/Atom/wlPiw/src/repl.jl:140
   [37] macro expansion at /Users/tlienart/.julia/packages/Atom/wlPiw/src/eval.jl:108 [inlined]
   [38] macro expansion at /Users/tlienart/.julia/packages/Media/ItEPc/src/dynamic.jl:24 [inlined]
   [39] eval(::String, ::Int64, ::String, ::String, ::Bool) at /Users/tlienart/.julia/packages/Atom/wlPiw/src/eval.jl:105
   [40] macro expansion at /Users/tlienart/.julia/packages/Atom/wlPiw/src/eval.jl:39 [inlined]
   [41] (::Atom.var"#172#173")() at ./task.jl:358

** On entry to DLASCL, parameter number  4 had an illegal value
** On entry to DLASCL, parameter number  4 had an illegal value
LinReg: Error During Test at /Users/tlienart/.julia/dev/MLJModels/test/ScikitLearn/linear-regressors.jl:135
  Got exception outside of a @test
  PyError ($(Expr(:escape, :(ccall(#= /Users/tlienart/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:43 =# @pysym(:PyObject_Call), PyPtr, (PyPtr, PyPtr, PyPtr), o, pyargsptr, kw))))) <class 'numpy.linalg.LinAlgError'>
  LinAlgError('SVD did not converge in Linear Least Squares')
    File "/Users/tlienart/.julia/conda/3/lib/python3.7/site-packages/sklearn/linear_model/base.py", line 503, in fit
      linalg.lstsq(X, y)
    File "/Users/tlienart/.julia/conda/3/lib/python3.7/site-packages/scipy/linalg/basic.py", line 1241, in lstsq
      raise LinAlgError("SVD did not converge in Linear Least Squares")

and more of the same

I'm wondering whether there's not a clash between Conda versions somehow

tlienart commented 4 years ago

We should compare

cc @OkonSamuel

tlienart commented 4 years ago

Last commit ok: https://github.com/alan-turing-institute/MLJModels.jl/commit/61febaac356a9214cb206fbb2e210dd75b93bcdd on Feb 26

First commit nok: https://github.com/alan-turing-institute/MLJModels.jl/commit/d9944ca07e370c82c2ac8e1aef1b588af96ffe82 on Feb 28

List of differences:

Maybe relevant

Probably irrelevant

tlienart commented 4 years ago

The openspecfun calls the compilersupportlibs, note that this change was made on February 26 which is also the date where we had our last working push... let's try putting a compat bound on that

tlienart commented 4 years ago

Ok this is almost certainly the culprit, you can see that the compat of that thing is Julia 1.3 which would also explain why it fails on 1.3/1.4... now where the heck is this loaded

tlienart commented 4 years ago

Steps to fix the problem:

in your terminal, go wherever that is, for me cd ~/.julia/dev/OpenSpecFun_jll

git reset --hard OpenSpecFun-v0.5.3+1

Log

(@v1.5) pkg> activate .
s Activating environment at `~/.julia/dev/MLJModels/Project.toml`

(MLJModels) pkg> status
Project MLJModels v0.9.3
     Status `~/.julia/dev/MLJModels/Project.toml`
   324d7699 CategoricalArrays v0.7.7
   b4f34e82 Distances v0.8.2
   31c24e10 Distributions v0.22.6
   a7f614a8 MLJBase v0.12.3 `~/.julia/dev/MLJBase`
   e80e1ace MLJModelInterface v0.2.1 `../MLJModelInterface`
   6f286f6a MultivariateStats v0.7.0
   efe28fd5 OpenSpecFun_jll v0.5.3+1 `~/.julia/dev/OpenSpecFun_jll`
   bac558e1 OrderedCollections v1.1.0
   d96e819e Parameters v0.12.0
   ae029012 Requires v1.0.1
   321657f4 ScientificTypes v0.7.1 `../ScientificTypes`
   2913bbd2 StatsBase v0.32.2
   bd369af6 Tables v1.0.3
   b77e0a4c InteractiveUtils
   37e2e46d LinearAlgebra
   44cfe95a Pkg
   9a3f8284 Random
   10745b16 Statistics
[ Info: Precompiling MLJModels [d491faf4-2d78-11e9-2867-c94bc002c0b7]
[ Info: Model metadata loaded from registry. 
[ Info: Precompiling RDatasets [ce6b1742-4840-55fa-b093-852dadbb1d8b]
[ Info: Training Machine{AffinityPropagation} @ 1…25.
Test Summary:       | Pass  Total
AffinityPropagation |    5      5
[ Info: Training Machine{AgglomerativeClustering} @ 1…41.
Test Summary:           | Pass  Total
AgglomerativeClustering |    4      4
[ Info: Training Machine{Birch} @ 9…06.
Test Summary: | Pass  Total
Birch         |    8      8
[ Info: Training Machine{DBSCAN} @ 9…63.
Test Summary: | Pass  Total
DBSCAN        |    4      4
[ Info: Training Machine{FeatureAgglomeration} @ 1…75.
Test Summary:        | Pass  Total
FeatureAgglomeration |    7      7
[ Info: Training Machine{KMeans} @ 2…15.
Test Summary: | Pass  Total
KMeans        |    6      6
[ Info: Training Machine{MiniBatchKMeans} @ 9…15.
Test Summary: | Pass  Total
MBKMeans      |    6      6
[ Info: Training Machine{MeanShift} @ 9…80.
Test Summary: | Pass  Total
MeanShift     |    5      5
[ Info: Training Machine{OPTICS} @ 5…86.
Test Summary: | Pass  Total
OPTICS        |    4      4
[ Info: Training Machine{SpectralClustering} @ 1…33.
Test Summary:      | Pass  Total
SpectralClustering |    4      4
Pass  Total
SVM-infos     |    7      7
Test Summary: | Pass  Total
SVCs          |    3      3
Test Summary: | Pass  Total
SVRs          |    3      3
Test Summary: | Pass  Total
ARD           |    3      3
Test Summary: | Pass  Total
BayesianRidge |    3      3
Test Summary: | Pass  Total
ElasticNet    |    3      3
Test Summary: | Pass  Total
ElasticNetCV  |    3      3
Test Summary: | Pass  Total
Huber         |    3      3
Test Summary: | Pass  Total
Lars          |    3      3
Test Summary: | Pass  Total
LarsCV        |    3      3
Test Summary: | Pass  Total
Lasso         |    3      3
Test Summary: | Pass  Total
LassoCV       |    3      3
Test Summary: | Pass  Total
LassoLars     |    3      3
Test Summary: | Pass  Total
LassoLarsCV   |    3      3
Test Summary: | Pass  Total
LassoLarsIC   |    3      3
Test Summary: | Pass  Total
LinReg        |    5      5
Test Summary: | Pass  Total
OMP           |    3      3
Test Summary: | Pass  Total
OMPCV         |    3      3
Test Summary: | Pass  Total
OMPCV         |    3      3
Test Summary: | Pass  Total
PassAggr      |    3      3
Test Summary: | Pass  Total
RANSAC        |    3      3
Test Summary: | Pass  Total
Ridge         |    3      3
Test Summary: | Pass  Total
RidgeCV       |    4      4
Test Summary: | Pass  Total
SGDReg        |    3      3
Test Summary: | Pass  Total
TheilSen      |    3      3
Test Summary: | Pass  Total
MTLassoCV     |    4      4
Test Summary: | Pass  Total
MTLassoCV     |    3      3
Test Summary: | Pass  Total
MTElNet       |    3      3
Test Summary: | Pass  Total
MTElNetCV     |    3      3
Test Summary: | Pass  Total
LogRegClf     |    8      8
Test Summary: | Pass  Total
LogRegCVClf   |    8      8
Test Summary: | Pass  Total
PAClf         |    7      7
Test Summary: | Pass  Total
PerceptronClf |    7      7
Test Summary: | Pass  Total
RidgeClf      |    7      7
Test Summary: | Pass  Total
RidgeCVClf    |    7      7
Test Summary: | Pass  Total
SGDClf        |   13     13
Test Summary: | Pass  Total
GPRegressor   |    3      3
Test Summary: | Pass  Total
GPClassif     |    8      8
Test Summary: | Pass  Total
AdaBoostReg   |    3      3
Test Summary: | Pass  Total
BaggingReg    |    3      3
Test Summary: | Pass  Total
XTreeReg      |    3      3
Test Summary: | Pass  Total
GBReg         |    3      3
Test Summary: | Pass  Total
RFReg         |    3      3
Test Summary: | Pass  Total
AdaboostClf   |    8      8
Test Summary: | Pass  Total
BaggingClf    |    8      8
Test Summary: | Pass  Total
GradBoostClf  |    8      8
Test Summary: | Pass  Total
RForestClf    |    8      8
Test Summary: | Pass  Total
XTreeClf      |    8      8
Test Summary: | Pass  Total
LDA           |    8      8
Test Summary: | Pass  Total
QDA           |    8      8
Test Summary: | Pass  Total
DummyReg      |    4      4
Test Summary: | Pass  Total
DummyClf      |    7      7
Test Summary: | Pass  Total
GaussianNBClf |    8      8
Test Summary: | Pass  Total
KNNReg        |    5      5
Test Summary: | Pass  Total
KNNClf        |    8      8
Test Summary: | Pass  Total
BernNBClf     |    7      7
Test Summary: | Pass  Total
MultiNBClf    |    7      7
Test Summary: | Pass  Total
ComplNBClf    |    7      7

This is on a Mac with v1.5

OkonSamuel commented 4 years ago

@tlienart looking at the METADATA file it seems OpenSpecFun_jll.jl is a depency only used by Distributions.jl and SpecialFunctions.jl

tlienart commented 4 years ago

I think possibly RMath? But either way Elliott has commented on a similar issue in the BinaryBuilder package, seems like using MKL_jll before anything else might solve the issue but I haven’t tried

Here : https://github.com/JuliaPackaging/BinaryBuilder.jl/issues/700

staticfloat commented 4 years ago

I tried to reproduce this locally, and I haven't been able to so far. I installed MLJModels.jl#mkl within a pristine environment on my MacOS machine and ran the MLJModels tests on Julia 1.4.0, and even tried commenting out the explicit MKL_jll, but it never failed on my machine. Is there something I'm missing?

tlienart commented 4 years ago

Thanks for trying this Elliott, it may well be that the error now only shows on Travis (cf link in the other issue) though I’m a bit surprised if that’s really the case.

My environment is far from pristine but I’ll try creating one from scratch and testing on my side. Either way I think it would be good to make sure we can control this so that no one encounters undue segfaults !

Thanks again!

cc @ablaom , @azev77 who also encountered this issue

azev77 commented 4 years ago

@staticfloat Below: LGBM works, but ARDRegressor gives an error during fit!. I don't get this error on my windows PC or w/ Julia 1.2...

using MLJ
X, y =  @load_boston;
train, test = partition(eachindex(y), .7, rng=333);

@load LGBMRegressor
mdl  = LGBMRegressor()
mach = machine(mdl, X, y)
fit!(mach, rows=train)

@load ARDRegressor
mdl  = ARDRegressor()
mach = machine(mdl, X, y)
fit!(mach, rows=train)

PyError ($(Expr(:escape, :(ccall(#= /Users/AZevelev/.julia/packages/PyCall/zqDXB/src/pyfncall.jl:43 =# @pysym(:PyObject_Call), PyPtr, (PyPtr, PyPtr, PyPtr), o, pyargsptr, kw))))) <class 'numpy.linalg.LinAlgError'>
LinAlgError('unrecoverable internal error.')
  File "/Users/AZevelev/.julia/conda/3/lib/python3.7/site-packages/sklearn/linear_model/_bayes.py", line 577, in fit
    sigma_ = update_sigma(X, alpha_, lambda_, keep_lambda, n_samples)
  File "/Users/AZevelev/.julia/conda/3/lib/python3.7/site-packages/sklearn/linear_model/_bayes.py", line 562, in update_sigma
    X[:, keep_lambda].T))
  File "/Users/AZevelev/.julia/conda/3/lib/python3.7/site-packages/sklearn/externals/_scipy_linalg.py", line 99, in pinvh
    s, u = decomp.eigh(a, lower=lower, check_finite=False)
  File "/Users/AZevelev/.julia/conda/3/lib/python3.7/site-packages/scipy/linalg/decomp.py", line 474, in eigh
    raise LinAlgError("unrecoverable internal error.")

pyerr_check at exception.jl:60 [inlined]
pyerr_check at exception.jl:64 [inlined]
_handle_error(::String) at exception.jl:81
macro expansion at exception.jl:95 [inlined]
#110 at pyfncall.jl:43 [inlined]
disable_sigint at c.jl:446 [inlined]
__pycall! at pyfncall.jl:42 [inlined]
_pycall!(::PyCall.PyObject, ::PyCall.PyObject, ::Tuple{Array{Float64,2},Array{Float64,1}}, ::Int64, ::Ptr{Nothing}) at pyfncall.jl:29
_pycall!(::PyCall.PyObject, ::PyCall.PyObject, ::Tuple{Array{Float64,2},Array{Float64,1}}, ::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at pyfncall.jl:11
(::PyCall.PyObject)(::Array{Float64,2}, ::Vararg{Any,N} where N; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at pyfncall.jl:86
(::PyCall.PyObject)(::Array{Float64,2}, ::Vararg{Any,N} where N) at pyfncall.jl:86
fit!(::PyCall.PyObject, ::Array{Float64,2}, ::Vararg{Any,N} where N; kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at Skcore.jl:100
fit!(::PyCall.PyObject, ::Array{Float64,2}, ::Array{Float64,1}) at Skcore.jl:100
fit(::ARDRegressor, ::Int64, ::NamedTuple{(:Crim, :Zn, :Indus, :NOx, :Rm, :Age, :Dis, :Rad, :Tax, :PTRatio, :Black, :LStat),NTuple{12,Array{Float64,1}}}, ::Array{Float64,1}) at ScikitLearn.jl:157
fit!(::Machine{ARDRegressor}; rows::Array{Int64,1}, verbosity::Int64, force::Bool) at machines.jl:183
(::StatsBase.var"#fit!##kw")(::NamedTuple{(:rows,),Tuple{Array{Int64,1}}}, ::typeof(fit!), ::Machine{ARDRegressor}) at machines.jl:146
top-level scope at MLJ_FitMachine_Error.jl:18
ablaom commented 4 years ago

Okay, I no longer fail on #mkl or #dev branch of MLJModels in Julia 1.3.

Sorry I don't have 1.4 installed just now. Can check later

tlienart commented 4 years ago

So it's only CI that fails this maybe due to the way that it installs SkLearn @staticfloat what do you think of the travis log here: https://travis-ci.com/github/alan-turing-institute/MLJModels.jl/jobs/320357986 ?

[ Info: Training Machine{SpectralClustering} @ 3…29.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

ERROR: Package MLJModels errored during testing

Stacktrace:

 [1] pkgerror(::String, ::Vararg{String,N} where N) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Types.jl:53

 [2] test(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}; coverage::Bool, julia_args::Cmd, test_args::Cmd, test_fn::Nothing) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/Pkg/src/Operations.jl:1503

 [3] test(::Pkg.Types.Context, ::Array{Pkg.Types.PackageSpec,1}; coverage::Bool, test_fn::Nothing, julia_args::Cmd, test_args::Cmd, kwargs::Base.Iterators.Pairs{Union{},Union{},Tuple{},NamedTuple{(),Tuple{}}}) at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:316

 [4] #test#68 at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:297 [inlined]

 [5] #test#65 at /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.4/Pkg/src/API.jl:294 [inlined]

 [6] top-level scope at none:1

The command "julia --check-bounds=yes --color=yes -e "if VERSION < v\"0.7.0-DEV.5183\"; Pkg.test(\"${JL_PKG}\", coverage=true); else using Pkg; Pkg.test(coverage=true); end"" failed and exited with 1 during .
ablaom commented 4 years ago

This well-known issue not related to MLJ is being tracked. So closing