Простой код тензорного потока не может работать на python, потому что он запрашивает неправильную версию dll CUDA [дубликат]

Лучший способ проверить, является ли число простым, - это увидеть, делится ли оно каким-либо простым числом перед ним. Pi (x) - это тот, который я все время вижу повсюду ... Вы можете увидеть немного больше информации о Prime Counting на wikipedia .

Итак, самый эффективный способ, который я могу придумать на данный момент следующее:

class prime
{
    public $primes = [ 2, 3, 5, 7 ];
    public $not_prime = [ 1, 4, 6, 8, 9 ];
    public function is_prime( int $n )
    {
        if ( $n <= 1 ) return false;
        if ( in_array( $n, $this->primes ) ) return true;
        if ( in_array( $n, $this->not_prime ) ) return false;
        for( $i = 0; $i < count( array_slice( $this->primes, 0, $this->prime_count( $n ) ) ) || $i == $n; $i++ )
        {
            if ( $n % $this->primes[ $i ] == 0 ) return false;
        }
        return true;
    }
    public function build_primes_to( int $n )
    {
        for ( $i = end( $this->primes ) + 1; $i <= $n; $i++ )
        {
            if ( $this->is_prime( $i ) )
            {
                $this->primes[] = $i;
            }
            else
            {
                $this->not_prime[] = $i;
            }
        }
    }
    public function prime_count( $n )
    {
        $ln = log( $n );
        if ( $ln == 0 ) return 1;
        return intval( ceil( $n / $ln ) );
    }
}

Это не очень эффективно, ну, а не когда дело доходит до создания списка простых чисел ... Я работал лучше для создания списка здесь , хотя было бы легко и гораздо эффективнее найти список в Интернете и использовать его.

Использование вышеперечисленного было бы в соответствии с :

$find_to = 1000;
$prime = new prime();
$prime->build_primes_to( $find_to );
print "
";
for ( $i = 1; $i < $find_to; $i++ )
{
    print "$i is " . ( !$prime->is_prime( $i ) ? "not " : "" ) . "prime\n";
}

12
задан Niing 19 May 2018 в 06:19
поделиться

5 ответов

Из своего форума: https://devtalk.nvidia.com/default/topic/493290/multiple-cuda-versions-can-they-coexist-/ , они сказали, что несколько разных версий CUDA может сосуществовать! Просто загрузите все версии, которые вам нужны, и загрузите все патчи (мигание или нет) и соответствующие cuDNN. Я установил shadoworflow в виртуальной среде, используя conda, и после того, как все было установлено (перезапустите компьютер / повторно откройте командную строку несколько раз), теперь он работает!

6
ответ дан Niing 15 August 2018 в 14:41
поделиться

Если вы установили более высокую версию Cuda, просто запустите установщик Cuda с более низкой версией, он автоматически удалит установленную версию, если ее не будет той же версии. В моем случае в Windows 10 Cuda9.2 был удален установщиком Cuda9.0. Спасибо!

0
ответ дан Bruce Yo 15 August 2018 в 14:41
поделиться

У меня была одна и та же проблема, и я решил ее, изменив python 3.5 на python 3.6. Надеюсь, вы тоже сможете это решить.

0
ответ дан Yifeng Luo 15 August 2018 в 14:41
поделиться
  • 1
    Просто попробовал, и он не работал (Windows7, tensorflow-1.9 binary install). – mieszkoz 11 July 2018 в 15:05
0
ответ дан Filnor 28 October 2018 в 22:07
поделиться
0
ответ дан Richard Paprok 28 October 2018 в 22:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: