DmitryUlyanov / Multicore-TSNE

Parallel t-SNE implementation with Python and Torch wrappers.
Other
1.89k stars 228 forks source link

installation fails on macOS #1

Closed sg-s closed 7 years ago

sg-s commented 8 years ago

I followed the instructions on this link to get a version of gcc that supports openmp.

but it looks like the install script isn't using gcc:

-- The C compiler identification is AppleClang 8.0.0.8000038
-- The CXX compiler identification is AppleClang 8.0.0.8000038
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc

help?

DmitryUlyanov commented 8 years ago

I do not have mac, but you can try to modify cmake comand inside setup.py according to http://stackoverflow.com/questions/24380456/how-can-i-make-cmake-use-gcc-instead-of-clang-on-mac-os-x

sg-s commented 8 years ago

Hey, thanks for that link. I managed to get cmake to use a gcc instead of clang my modifying the setup script:

os.system('mkdir -p multicore_tsne/release ; rm -r multicore_tsne/release/* ; cd multicore_tsne/release ; cmake -DCMAKE_C_COMPILER=/usr/local/bin/gcc-6 -DCMAKE_CXX_COMPILER=/usr/local/bin/gcc-6 -DCMAKE_BUILD_TYPE=RELEASE .. ; make VERBOSE=1')

that seems to work, but I get a different error message that looks like there's something broken somewhere else:

running install
-- The C compiler identification is GNU 6.2.0
-- The CXX compiler identification is GNU 6.2.0
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Check for working C compiler: /usr/local/bin/gcc-6
-- Check for working C compiler: /usr/local/bin/gcc-6 -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Check for working CXX compiler: /usr/local/bin/gcc-6
-- Check for working CXX compiler: /usr/local/bin/gcc-6 -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Try OpenMP CXX flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Found OpenMP: -fopenmp  
-- Configuring done
-- Generating done
-- Build files have been written to: /code/Multicore-TSNE/multicore_tsne/release
/usr/local/Cellar/cmake/3.6.2/bin/cmake -H/code/Multicore-TSNE/multicore_tsne -B/code/Multicore-TSNE/multicore_tsne/release --check-build-system CMakeFiles/Makefile.cmake 0
/usr/local/Cellar/cmake/3.6.2/bin/cmake -E cmake_progress_start /code/Multicore-TSNE/multicore_tsne/release/CMakeFiles /code/Multicore-TSNE/multicore_tsne/release/CMakeFiles/progress.marks
/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/Makefile2 all
/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/tsne_multicore.dir/build.make CMakeFiles/tsne_multicore.dir/depend
cd /code/Multicore-TSNE/multicore_tsne/release && /usr/local/Cellar/cmake/3.6.2/bin/cmake -E cmake_depends "Unix Makefiles" /code/Multicore-TSNE/multicore_tsne /code/Multicore-TSNE/multicore_tsne /code/Multicore-TSNE/multicore_tsne/release /code/Multicore-TSNE/multicore_tsne/release /code/Multicore-TSNE/multicore_tsne/release/CMakeFiles/tsne_multicore.dir/DependInfo.cmake --color=
Dependee "/code/Multicore-TSNE/multicore_tsne/release/CMakeFiles/tsne_multicore.dir/DependInfo.cmake" is newer than depender "/code/Multicore-TSNE/multicore_tsne/release/CMakeFiles/tsne_multicore.dir/depend.internal".
Dependee "/code/Multicore-TSNE/multicore_tsne/release/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/code/Multicore-TSNE/multicore_tsne/release/CMakeFiles/tsne_multicore.dir/depend.internal".
Scanning dependencies of target tsne_multicore
/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/tsne_multicore.dir/build.make CMakeFiles/tsne_multicore.dir/build
[ 33%] Building CXX object CMakeFiles/tsne_multicore.dir/quadtree.cpp.o
/usr/local/bin/gcc-6   -Dtsne_multicore_EXPORTS  -fopenmp -O3 -fPIC -ffast-math -funroll-loops -O3 -DNDEBUG -fPIC   -o CMakeFiles/tsne_multicore.dir/quadtree.cpp.o -c /code/Multicore-TSNE/multicore_tsne/quadtree.cpp
In file included from /code/Multicore-TSNE/multicore_tsne/quadtree.cpp:15:0:
/code/Multicore-TSNE/multicore_tsne/quadtree.h: In function 'double abs(double)':
/code/Multicore-TSNE/multicore_tsne/quadtree.h:18:34: error: 'double abs(double)' conflicts with a previous declaration
 static inline double abs(double x) { return (x < .0 ? -x : x); }
                                  ^
In file included from /usr/local/Cellar/gcc/6.2.0/include/c++/6.2.0/math.h:36:0,
                 from /code/Multicore-TSNE/multicore_tsne/quadtree.cpp:11:
/usr/local/Cellar/gcc/6.2.0/include/c++/6.2.0/cmath:85:3: note: previous declaration 'constexpr double std::abs(double)'
   abs(double __x)
   ^~~
make[2]: *** [CMakeFiles/tsne_multicore.dir/quadtree.cpp.o] Error 1
make[1]: *** [CMakeFiles/tsne_multicore.dir/all] Error 2
make: *** [all] Error 2
cp: multicore_tsne/release/libtsne_multicore.so: No such file or directory
running build
running build_py
running egg_info
writing MulticoreTSNE.egg-info/PKG-INFO
writing requirements to MulticoreTSNE.egg-info/requires.txt
writing dependency_links to MulticoreTSNE.egg-info/dependency_links.txt
writing top-level names to MulticoreTSNE.egg-info/top_level.txt
reading manifest file 'MulticoreTSNE.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'python/libtsne_multicore.so'
writing manifest file 'MulticoreTSNE.egg-info/SOURCES.txt'
running install_lib
running install_egg_info
removing '/Users/srinivas/anaconda3/lib/python3.5/site-packages/MulticoreTSNE-0.1-py3.5.egg-info' (and everything under it)
Copying MulticoreTSNE.egg-info to /Users/srinivas/anaconda3/lib/python3.5/site-packages/MulticoreTSNE-0.1-py3.5.egg-info
DmitryUlyanov commented 8 years ago

https://github.com/DmitryUlyanov/Multicore-TSNE/commit/9d9568e659ea03e9ba6250e51080c97a55f1bf4f This should fix it, try one more time.

DmitryUlyanov commented 8 years ago

Can you try to remove this line ? https://github.com/DmitryUlyanov/Multicore-TSNE/blob/9d9568e659ea03e9ba6250e51080c97a55f1bf4f/multicore_tsne/quadtree.h#L17

It looks like this function never used anyway.

adelr commented 8 years ago

You shouldn't have to change the installation script. If you specify the path to GCC in the CC environment variable before running the installation script, it should use the right compiler. In other words, typing the following in your terminal should do the trick: export CC="/usr/local/bin/gcc-6"; python setup.py install

sg-s commented 8 years ago

Hi @adelr, that isn't right. cmake doesn't listen to CC or CXX options. in any case, it doesn't solve the problem (please see error above)

adelr commented 8 years ago

Hi @sg-s, starting from the original (non-modified) setup script, on Mac OS 10.11.6 (with anaconda python 3.5.2 or 2.7.12) I get an error similar to your original one because clang is being used by default:

python setup.py install
running install
-- The C compiler identification is AppleClang 8.0.0.8000038
-- The CXX compiler identification is AppleClang 8.0.0.8000038
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Try OpenMP C flag = [-fopenmp=libomp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
...

However, if I specify the path to gcc (I'm using gcc5.4 from macports) in CC, the installation works without a problem:

export CC="/opt/local/bin/gcc"; python setup.py install
running install
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Checking whether C compiler has -isysroot
-- Checking whether C compiler has -isysroot - yes
-- Checking whether C compiler supports OSX deployment target flag
-- Checking whether C compiler supports OSX deployment target flag - yes
-- Check for working C compiler: /opt/local/bin/gcc
-- Check for working C compiler: /opt/local/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Check for working CXX compiler: /opt/local/bin/c++
-- Check for working CXX compiler: /opt/local/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Try OpenMP CXX flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
-- Found OpenMP: -fopenmp  
-- Configuring done
-- Generating done
-- Build files have been written to: /Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/release
/opt/local/bin/cmake -H/Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne -B/Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/release --check-build-system CMakeFiles/Makefile.cmake 0
/opt/local/bin/cmake -E cmake_progress_start /Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/release/CMakeFiles /Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/release/CMakeFiles/progress.marks
/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/Makefile2 all
/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/tsne_multicore.dir/build.make CMakeFiles/tsne_multicore.dir/depend
cd /Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/release && /opt/local/bin/cmake -E cmake_depends "Unix Makefiles" /Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne /Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne /Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/release /Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/release /Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/release/CMakeFiles/tsne_multicore.dir/DependInfo.cmake --color=
Dependee "/Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/release/CMakeFiles/tsne_multicore.dir/DependInfo.cmake" is newer than depender "/Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/release/CMakeFiles/tsne_multicore.dir/depend.internal".
Dependee "/Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/release/CMakeFiles/CMakeDirectoryInformation.cmake" is newer than depender "/Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/release/CMakeFiles/tsne_multicore.dir/depend.internal".
Scanning dependencies of target tsne_multicore
/Applications/Xcode.app/Contents/Developer/usr/bin/make -f CMakeFiles/tsne_multicore.dir/build.make CMakeFiles/tsne_multicore.dir/build
[ 33%] Building CXX object CMakeFiles/tsne_multicore.dir/quadtree.cpp.o
/opt/local/bin/c++   -Dtsne_multicore_EXPORTS  -fopenmp -O3 -fPIC -ffast-math -funroll-loops -O3 -DNDEBUG -fPIC   -o CMakeFiles/tsne_multicore.dir/quadtree.cpp.o -c /Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/quadtree.cpp
[ 66%] Building CXX object CMakeFiles/tsne_multicore.dir/tsne.cpp.o
/opt/local/bin/c++   -Dtsne_multicore_EXPORTS  -fopenmp -O3 -fPIC -ffast-math -funroll-loops -O3 -DNDEBUG -fPIC   -o CMakeFiles/tsne_multicore.dir/tsne.cpp.o -c /Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/tsne.cpp
[100%] Linking CXX shared module libtsne_multicore.so
/opt/local/bin/cmake -E cmake_link_script CMakeFiles/tsne_multicore.dir/link.txt --verbose=1
/opt/local/bin/c++   -fopenmp -O3 -fPIC -ffast-math -funroll-loops -O3 -DNDEBUG -bundle -Wl,-headerpad_max_install_names  -o libtsne_multicore.so CMakeFiles/tsne_multicore.dir/quadtree.cpp.o CMakeFiles/tsne_multicore.dir/tsne.cpp.o 
[100%] Built target tsne_multicore
/opt/local/bin/cmake -E cmake_progress_start /Users/adel/Programming/Python/Repos/Multicore-TSNE/multicore_tsne/release/CMakeFiles 0
running build
running build_py
running egg_info
writing pbr to MulticoreTSNE.egg-info/pbr.json
writing top-level names to MulticoreTSNE.egg-info/top_level.txt
writing requirements to MulticoreTSNE.egg-info/requires.txt
writing MulticoreTSNE.egg-info/PKG-INFO
writing dependency_links to MulticoreTSNE.egg-info/dependency_links.txt
reading manifest file 'MulticoreTSNE.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'MulticoreTSNE.egg-info/SOURCES.txt'
copying python/libtsne_multicore.so -> build/lib/MulticoreTSNE
running install_lib
copying build/lib/MulticoreTSNE/libtsne_multicore.so -> /Users/adel/anaconda/envs/py35/lib/python3.5/site-packages/MulticoreTSNE
running install_egg_info
removing '/Users/adel/anaconda/envs/py35/lib/python3.5/site-packages/MulticoreTSNE-0.1-py3.5.egg-info' (and everything under it)
Copying MulticoreTSNE.egg-info to /Users/adel/anaconda/envs/py35/lib/python3.5/site-packages/MulticoreTSNE-0.1-py3.5.egg-info

Could this be a gcc6 issue?

sg-s commented 8 years ago

@adelr could you upload your binary in the meantime?

adelr commented 8 years ago

This is quite odd indeed. Binary is attached. Best wishes. libtsne_multicore.so.gz

DmitryUlyanov commented 8 years ago

@sg-s did you try this http://stackoverflow.com/questions/11852568/gcc-4-8-on-mac-os-x-10-8-throws-undefined-symbols-for-architecture-x86-64 ?

Especially the part about -lstdc++ flag

sg-s commented 8 years ago

thanks @DmitryUlyanov, but that problem is when I used gcc5.4.

earlier, I had a different error, perhaps, linked to this:

https://stackoverflow.com/questions/28799074/qt-error-symbols-not-found-for-architecture-x86-64-on-mac-os-x-yosemite#28799463

i don't think i have the skillset to solve this problem; hopefully someone smarter will figure this out.

thomwolf commented 7 years ago

I end up with the same error compiling with gcc 5.2.0 on MacOSX Sierra 10.12.1 (Undefined symbols for architecture x86_64). I am currently investigating this but if you have any new tips on that, I am very interested !

thomwolf commented 7 years ago

Ok, it compiles and runs fine for me on MacOSX Sierra 10.12.1 The things I did to get it to compile:

Thank for this work, it is really fast indeed !

sg-s commented 7 years ago

wow, thanks, i'll check this out

edit: works! thanks @thomwolf. used gcc 6.2.0

kylemcdonald commented 7 years ago

thanks @thomwolf worked for me, except the current gcc version is 6.1.0, so: export CC="/usr/local/Cellar/gcc/6.1.0/bin/gcc-6"; export CXX="/usr/local/Cellar/gcc/6.1.0/bin/gcc-6"; python setup.py install

overall this is faster. for my task i see about 20% speedup to 8m45s running on 8 logical cores, compared to 11m for bh_tsne.

thomwolf commented 7 years ago

You're welcome @kylemcdonald, by the way I am a huge fan (and user) of your OF/sound work ! So thank you too (not to hijack this github issue :) )

sg-s commented 7 years ago

I'm going to close this, it works great for me now!

jolespin commented 7 years ago

Here's my GCC:

$ ls /usr/local/Cellar/gcc/7.1.0/bin/
c++-7                                   gcc-ar-7                                gcov-dump-7                             x86_64-apple-darwin14.5.0-c++-7         x86_64-apple-darwin14.5.0-gcc-ar-7
cpp-7                                   gcc-nm-7                                gcov-tool-7                             x86_64-apple-darwin14.5.0-g++-7         x86_64-apple-darwin14.5.0-gcc-nm-7
g++-7                                   gcc-ranlib-7                            gfortran                                x86_64-apple-darwin14.5.0-gcc-7         x86_64-apple-darwin14.5.0-gcc-ranlib-7
gcc-7                                   gcov-7                                  gfortran-7                              x86_64-apple-darwin14.5.0-gcc-7.1.0     x86_64-apple-darwin14.5.0-gfortran-7

I tried:

Joshs-MacBook-Air:Multicore-TSNE Mu$ CC="/usr/local/Cellar/gcc/7.1.0/bin/gcc-7"; export CXX="/usr/local/Cellar/gcc/7.1.0/bin/gcc-7"; python setup.py install
running install
-- The C compiler identification is AppleClang 7.0.0.7000072
-- The CXX compiler identification is GNU 7.1.0
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Checking if C linker supports --verbose
-- Checking if C linker supports --verbose - no
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Checking whether CXX compiler has -isysroot
-- Checking whether CXX compiler has -isysroot - yes
-- Checking whether CXX compiler supports OSX deployment target flag
-- Checking whether CXX compiler supports OSX deployment target flag - yes
-- Check for working CXX compiler: /usr/local/Cellar/gcc/7.1.0/bin/gcc-7
-- Check for working CXX compiler: /usr/local/Cellar/gcc/7.1.0/bin/gcc-7 -- works
-- Detecting CXX compiler ABI info
-- Checking if CXX linker supports --verbose
-- Checking if CXX linker supports --verbose - no
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Try OpenMP C flag = [-fopenmp=libomp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [ ]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [/openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-Qopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-xopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [+Oopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-qsmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-mp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Success
CMake Error at /Users/Mu/anaconda/share/cmake-3.6/Modules/FindPackageHandleStandardArgs.cmake:148 (message):
  Could NOT find OpenMP (missing: OpenMP_C_FLAGS)
Call Stack (most recent call first):
  /Users/Mu/anaconda/share/cmake-3.6/Modules/FindPackageHandleStandardArgs.cmake:388 (_FPHSA_FAILURE_MESSAGE)
  /Users/Mu/anaconda/share/cmake-3.6/Modules/FindOpenMP.cmake:234 (find_package_handle_standard_args)
  CMakeLists.txt:6 (FIND_PACKAGE)

-- Configuring incomplete, errors occurred!
See also "/Users/Mu/Multicore-TSNE/multicore_tsne/release/CMakeFiles/CMakeOutput.log".
See also "/Users/Mu/Multicore-TSNE/multicore_tsne/release/CMakeFiles/CMakeError.log".
cannot find cmake

I install openmp with brew and with conda but it didn't work. Any suggestions?

sg-s commented 7 years ago

I wrote up some macOS specific installtion instructions here

Can you follow these and check if it works for you?

jolespin commented 7 years ago

Success! Thank you so much. Very, very excited to use this. Quick question, is this implementation analagous to the original author's implementation or based on the scikit-learn version because I stumbled across this github issue: https://github.com/scikit-learn/scikit-learn/issues/8766 when I was trying to figure out if the learning rate was adaptive https://github.com/scikit-learn/scikit-learn/issues/7215

sg-s commented 7 years ago

@jolespin the code is identical -- i just modified the installation script and instructions to get it to work on macOS

jolespin commented 7 years ago

Identical to the sklearn version or the van see maaten version?

sg-s commented 7 years ago

identical to Dmitry's version (which is not the same as the one in scikit-learn)

thomwolf commented 7 years ago

It is very close to the Van der Maarten version.

On May 23, 2017 5:49 PM, "Srinivas Gorur-Shandilya" < notifications@github.com> wrote:

identical to Dmitry's version (which is not the same as the one in scikit-learn)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/DmitryUlyanov/Multicore-TSNE/issues/1#issuecomment-303442482, or mute the thread https://github.com/notifications/unsubscribe-auth/AHA0HaYNMsji16lRqMvsa-lV57uc7j7qks5r8wAMgaJpZM4KcK8W .

jolespin commented 7 years ago

Awesome 🙌🏽 That is the one I have been using. One last question, can a random seed be used with this version? Does that warrant a separate feature request ticket? Thanks again for your help.

Yorko commented 7 years ago

Solved the same issues by installing gcc-mp-4.7 with Macports and building "by hand":

cd multicore_tsne/release cmake -DCMAKE_C_COMPILER=/opt/local/bin/gcc-mp-4.7 -DCMAKE_CXX_COMPILER=/opt/local/bin/gcc-mp-4.7 -DCMAKE_BUILD_TYPE=RELEASE .. cd .. make VERBOSE=1 cp libtsne_multicore.so <PATH_TO_PYTHON>/site-packages/MulticoreTSNE/