Как использовать несколько версий Tensorflow в одном проекте? - PullRequest
0 голосов
/ 08 апреля 2019

Я использую версию Tensorflow 1.9.0, которая построена с поддержкой AVX, но когда я упаковываю проект в EXE и тестирую на другой машине, он вылетает из-за отсутствия поддержки AVX на этой машине.поэтому я возвращаюсь к Tensorflow 1.5, и он работал нормально.Теперь вопрос в том, могу ли я переключиться на нужную версию Tensorflow после динамического определения поддержки AVX в машине (во время выполнения).

Я не знаю, как переключить версию, поэтому не пытался, но яобнаружение поддержки AVX.вот так

>>> import cpuinfo
>>> cpuinfo.get_cpu_info()
{'python_version': '3.6.5.final.0 (64 bit)', 
'cpuinfo_version': [5, 0, 0], 'arch': 'X86_64', 'bits': 64, 'count': 4, 'raw_arch_string': 'AMD64', 'vendor_id': 'GenuineIntel', 
'brand': 'Intel(R) Core(TM) i3-2350M CPU @ 2.30GHz', 'hz_advertised': '2.3000 GHz', 'hz_actual': '1.6000 GHz', 'hz_advertised_raw': [2300000000, 0], 'hz_actual_raw': [1600000000, 0], 'l2_cache_size': '512 KB', 'stepping': 7, 'model': 42, 'family': 6, 'l3_cache_size': '3072 KB', 
'flags': ['acpi', 'apic', 'avx', 'clflush', 'cmov', 'cx16', 'cx8', 'de', 'ds_cpl', 'dtes64', 'dts', 'est', 'fpu', 'fxsr', 'ht', 'ia64', 'lahf_lm', 'mca', 'mce', 'mmx', 'monitor', 'msr', 'mtrr', 'osxsave', 'pae', 'pat', 'pbe', 'pcid', 'pclmulqdq', 'pdcm', 'pge', 'pni', 'popcnt', 'pse', 'pse36', 'sep', 'serial', 'ss', 'sse', 'sse2', 'sse4_1', 'sse4_2', 'ssse3', 'tm', 'tm2', 'tsc', 'tscdeadline', 'vme', 'vmx', 'x2apic', 'xsave', 'xtpr'], 
'l2_cache_line_size': 6, 'l2_cache_associativity': '0x100', 'extended_model': 2}

Я хочу упаковать обе версии (с поддержкой AVX и без поддержки) в один и тот же EXE-файл и использовать его в соответствии с потребностями.Любые другие предложения приветствуются.Спасибо

1 Ответ

0 голосов
/ 24 мая 2019

Ваш вопрос содержит часть ответа. От cpuinfo.get_cpu_info() вы получите, поддерживается ли AVX или нет (упомянуто в 'flags'). Соответственно, вы можете установить необходимые пакеты внутри самого кода Python (подробности см. Установка модуля Python внутри кода ).

Кроме того, вы можете сделать то же самое из терминала. grep flags /proc/cpuinfo даст вам поддерживаемые флаги. В зависимости от того, есть avx или нет, создайте скрипт для установки тензорного потока соответствующей версии

...