Из документации метода view (), «Возвращенный тензор разделяет одни и те же данные, и должен иметь одинаковое количество элементов , но может иметь другой размер.» [ 113]
x1 = torch.randn((150,))
t_x1 = x1.view(10,30,1)
RuntimeError: форма '[10, 30, 1]' недопустима для ввода размера 150
Это потому, что 150! = 10 * 30. Если вы хотите использовать 30 раз шаг, тогда ваш размер выборки должен быть 150/30 = 5. Итак, правильный путь -
t_x1 = x1.view(5,30,1)
Вы должны попробовать это, просто запустите скрипт, который спит дольше вашего максимального времени выполнения.
<?php
sleep(ini_get('max_execution_time') + 10);
?>
Спойлер: В Linux время сна игнорируется, но в Windows оно считается временем выполнения.
Он влияет только на время сценария, а не на системные вызовы, такие как sleep (). Есть, видимо, ошибка, когда в Windows включен sleep (). Максимальное время выполнения составляет около реального времени, а не процессорного времени или чего-то подобного. Однако вы можете изменить его: директива
Что касается разницы между двумя последними, я полагаю, что max_execution_time является фиксированной величиной. Запуск:
ini_set('max_execution_time', 60);
ограничит сценарий до 60 секунд. Если через 20 секунд вы позвоните:
set_time_limit(60);
сценарий будет ограничен до 20 + 60 = 80 секунд.
Со страницы PHP sleep () есть это сообщение от пользователя:
Примечание: функция set_time_limit () и директива конфигурации max_execution_time влияет только на время выполнения самого скрипта. Любое время, потраченное на деятельность, которая происходит вне исполнения скрипт, такой как системные вызовы с использованием system (), функция sleep (), запросы к базе данных и т. д. не включены при определении максимального времени скрипт запущен.
Другие уже рассмотрели основы ограничения времени выполнения сценариев sleep () и PHP, но вы также должны знать еще один риск при использовании действительно длинных периодов ожидания.
Обычно, когда браузер отправляет запрос на сервер и не получает никаких данных с сервера, соединение может быть прервано. Это ограничение по времени зависит от конфигурации браузера, но я читал, что IE7 имеет значение по умолчанию всего 30 секунд, в то время как Firefox имеет значение по умолчанию 115 секунд - вы можете проверить свою собственную конфигурацию в Firefox перейдя к about: config и фильтрации для network.http.keep-alive.timeout (ограничение по времени указывается в секундах).
Редактировать: у меня были единицы для network.http.keep-alive.timeout и browser.urlbar.search.timeout смешались.
a) Да, это считается до предела времени (поэтому sleep (31) вызовет ошибку)
б) Это противоположно стоимости процессора - он позволяет другим приложениям использовать процессор (когда приложение спит, загрузка процессора этим приложением будет около 0%). Помимо отвлечения времени от пользователя, я не могу думать о каких-либо рисках использования этого.