Я думаю, что это должно сделать трюк. Я просто добавил if(isset
и добавил конкатенацию к переменным в теле, чтобы отделить PHP от HTML.
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$from = 'From: yoursite.com';
$to = 'contact@yoursite.com';
$subject = 'Customer Inquiry';
$body = "From:" .$name."\r\n E-Mail:" .$email."\r\n Message:\r\n" .$message;
if (isset($_POST['submit']))
{
if (mail ($to, $subject, $body, $from))
{
echo '<p>Your message has been sent!</p>';
}
else
{
echo '<p>Something went wrong, go back and try again!</p>';
}
}
?>
Чтобы установить эти значения значимым образом, вам нужно иметь несколько бит информации о ваших данных:
1. Тренировочный набор определяет общее количество примеров обучения, назовем это количество T
. 2. Размер партии тренировки - количество примеров обучения, обработанных вместе в одной партии, обычно устанавливается уровнем входных данных в 'train_val.prototxt'
. Например, в этот файл размер партии поезда установлен на 256. Обозначим эту величину через tb
. 3. Validation set size - общее количество примеров, которые вы отложили для проверки вашей модели, обозначим это V
. 4. Значение размера партии проверки, установленное в batch_size
для фазы TEST. В в этом примере установлено значение 50. Назовем это vb
.
Теперь, во время обучения, вы хотели бы получить непредвзятую оценку эффективности вашего сетью каждый раз в то время. Для этого вы запускаете свою сеть на основе проверки для итераций test_iter
. Чтобы охватить весь набор проверок, вам необходимо иметь test_iter = V/vb
. Как часто вы хотели бы получить эту оценку? Это действительно зависит от вас. Если у вас очень большой набор валидаций и медленная сеть, проверка слишком часто сделает процесс обучения слишком длинным. С другой стороны, недостаточно проверять достаточно часто, чтобы вы не заметили, когда и когда ваш процесс обучения не сходится. test_interval
определяет, как часто вы проверяете: обычно для больших сетей, которые вы устанавливаете test_interval
в порядке 5K, для небольших и более быстрых сетей вы можете выбрать более низкие значения. Опять же, все зависит от вас.
Чтобы покрыть весь набор тренировок (завершение «эпохи»), вам нужно запустить итерации T/tb
. Обычно для нескольких эпох, а значит, max_iter=#epochs*T/tb
.
Что касается iter_size
: это позволяет усреднять градиенты над несколькими обучающими мини-партиями, см. эту нить для получения дополнительной информации.
Caffe
сAlexNet
. У меня есть система с памятью115GB
и с помощьюtrain
иval
данных, установленных в LMDB, сImageNet ILSVRC 2012
. Я использую этот файл решателя со всеми параметрами, кромеmax_iteration=100
. Я не понимаю, почему потребление памяти примерно равно10GB
? Он должен быть меньше, посколькуCaffe
работает с пакетом изображений вместо полных данных. Любая идея, как этот расчет сделан? – Chetan Arvind Patil 22 October 2017 в 22:51"Adam"
). Все это может потребовать много оперативной памяти. См. эта нить – Shai 23 October 2017 в 05:31