Для всех, у кого проблема с «DLL-загрузкой не удалась» в Windows 10 / Python 3.6.x / RTX20xx.
Комбинация CUDA 10.0 (не 10.1!), CuDNN 7.5.0 отлично работает для меня (по состоянию на 12 апреля 2019 года). У меня также установлена Visual Studio 2015 (но я не уверен, что это необходимо).
Не забудьте добавить местоположение файла cuDNN * .dll (это каталог /bin/
в вашем каталоге CUDA) в ваш PATH.
Если у вас CUDA 10.1, просто удалите его, установите 10.0, добавьте файлы cuDNN в каталог 10.0 и перезагрузите компьютер.
Тензор потока можно установить с помощью pip install tensorflow-gpu
Это должно добиться цели:
function getFileCount($path) {
$size = 0;
$ignore = array('.','..','cgi-bin','.DS_Store');
$files = scandir($path);
foreach($files as $t) {
if(in_array($t, $ignore)) continue;
if (is_dir(rtrim($path, '/') . '/' . $t)) {
$size += getFileCount(rtrim($path, '/') . '/' . $t);
} else {
$size++;
}
}
return $size;
}
Используйте SPL, затем посмотрите, получаете ли Вы все еще ошибку.
Пример использования:
<?php
$path = realpath('/etc');
$objects = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($path), RecursiveIteratorIterator::SELF_FIRST);
foreach($objects as $name => $object){
echo "$name\n";
}
?>
Это печатает список всех файлов и каталоги под $path (включая $path ifself). Если Вы хотите опустить каталоги, удалите RecursiveIteratorIterator:: часть SELF_FIRST.
Затем просто используйте isDir ()
Проверьте руководство PHP glob()
функция: http://php.net/glob
Это имеет примеры в комментариях относительно того, как сделать это рекурсивным.
Почему Вы передаете $filecount? [Передал - в], значение не используется; единственное использование на уровне "$total + = $filecount", и Вы переопределяете $filecount незадолго до этого.
Вы пропускаете случай, когда функция встречается с постоянным клиентом (неdir) файл.
Править: Я просто заметил вызов к шарику (). Это не необходимо. Ваша функция рекурсивно касается каждого файла в целом дереве каталогов, так или иначе. См. ответ @Paolo Bergantino.