Мне нужно распределить свое приложение, которое использует Theano, на несколько машин.
Поэтому я хочу скомпилировать все функции Theano один раз, кэшировать их и сделать мое приложение независимым от g ++ для удобства распространения.
Моей первой попыткой было сохранить функции Theano в папке приложения:
os.environ['THEANO_FLAGS'] = ','.join([
"base_compiledir=" + sys_prefix + "/Theano-compiled",
"reoptimize_unpickled_function=False",
"cxx={}/share/mingwpy/bin/g++.exe".format(os.path.abspath(sys.prefix).replace('\\', '/')),
])
Тогда поменяй cxx
вариант, поэтому он будет выглядеть так:
os.environ['THEANO_FLAGS'] = ','.join([
"base_compiledir=" + sys_prefix + "/Theano-compiled",
"reoptimize_unpickled_function=False",
"cxx="])
И я получаю это исключение:
...
File "python\\Lib\theano\compile\function_module.py", line 1018, in _constructor_Function
f = maker.create(input_storage, trustme=True)
File "python\\Lib\theano\compile\function_module.py", line 1642, in create
input_storage=input_storage_lists, storage_map=storage_map)
File "python\\Lib\theano\gof\link.py", line 690, in make_thunk
storage_map=storage_map)[:3]
File "python\\Lib\theano\gof\vm.py", line 1037, in make_all
no_recycling))
File "python\\Lib\theano\gof\op.py", line 932, in make_thunk
no_recycling)
File "python\\Lib\theano\gof\op.py", line 850, in make_c_thunk
output_storage=node_output_storage)
File "python\\Lib\theano\gof\cc.py", line 1207, in make_thunk
keep_lock=keep_lock)
File "python\\Lib\theano\gof\cc.py", line 1152, in __compile__
keep_lock=keep_lock)
File "python\\Lib\theano\gof\cc.py", line 1602, in cthunk_factory
key=key, lnk=self, keep_lock=keep_lock)
File "python\\Lib\theano\gof\cmodule.py", line 1174, in module_from_key
module = lnk.compile_cmodule(location)
File "python\\Lib\theano\gof\cc.py", line 1513, in compile_cmodule
preargs=preargs)
File "python\\Lib\theano\gof\cmodule.py", line 2103, in compile_str
raise MissingGXX("g++ not available! We can't compile c code.")
Я потратил много времени, пытаясь решить эту проблему. Так возможно ли это вообще?
Благодарю.
Задача ещё не решена.
Других решений пока нет …