Нейронные сети - входные значения

Если договор класса A включает в себя тот факт, что он вызывает метод B объекта типа C, тогда вы должны проверить это, сделав макет типа C и проверив, что метод B. был вызван.

Это означает, что контракт класса A имеет достаточно подробные сведения о том, что он говорит о типе C (который может быть интерфейсом или классом). Итак, да, мы говорим о уровне спецификации, который выходит за рамки только «системных требований» и имеет некоторый способ описания реализации.

Это нормально для модульных тестов. Когда вы проводите модульное тестирование, вы хотите, чтобы каждый блок выполнял «правильную вещь» и обычно включал его взаимодействие с другими подразделениями. «Единицы» здесь могут означать классы или более крупные подмножества вашего приложения.

Обновление:

Я чувствую, что это не относится только к проверке, но и к тому, чтобы нанести удар. Как только вы закроете метод класса соавторов, ваш модульный тест стал в некотором смысле зависимым от реализации. По сути, это характерные модульные тесты. Поскольку Mockito так же остужает, как и о проверке, тот факт, что вы используете Mockito, подразумевает, что вы будете сталкиваться с такой зависимостью.

По моему опыту, если я изменить реализацию класса, мне часто приходится менять реализацию своих модульных тестов для соответствия. Однако, как правило, мне не придется менять инвентаризацию того, какие модульные тесты существуют для класса; если, разумеется, причиной изменения было наличие условия, которое я ранее не тестировал.

Итак, это то, что относятся к элементарным тестам. Тест, который не страдает от такой зависимости от того, как используются классы соавторов, действительно является подсистемным тестом или тестом интеграции. Конечно, они часто пишутся вместе с JUnit и часто включают в себя использование насмешек. По моему мнению, «JUnit» - ужасное имя, для продукта, который позволяет нам производить все различные типы тестов.

23
задан bias 19 July 2009 в 05:19
поделиться

3 ответа

При контакте с многомерными данными я полагаю, что две нейронных сети слоя, как говорят, дают лучший результат.

В Вашем случае:

R[0..1] => (N1)----\
                    \
G[0..1] => (N2)-----(N4) => Result[0..1]
                    /
B[0..1] => (N3)----/

, Как Вы видите, нейрон N4 может обработать 3 записи.

[0.. 1] интервал является конвенцией, но хорошей imo. Тем путем можно легко кодировать ряд универсальных классов нейрона, которые могут взять произвольное число записей (у меня были шаблонные классы C++ с количеством записей как шаблонный параметр лично). Таким образом, Вы кодируете логику своих нейронов однажды, тогда Вы играете со структурой сети и/или комбинациями функций в Ваших нейронах.

7
ответ дан Julian Aubourg 29 November 2019 в 02:44
поделиться

Обычно единственный нейрон берет в качестве его входа несколько вещественных чисел и производит вещественное число, которое обычно вычисляется как применение сигмовидной функции к сумме вещественных чисел (масштабируемый, и затем плюс или минус постоянное смещение).

, Если Вы хотите вставить, скажем, два вектора RGB (реалы 2 x 3), необходимо решить, как Вы хотите объединить значения. Если Вы добавляете все элементы вместе и применяете сигмовидную функцию, это эквивалентно входу "плоские" шесть реалов. С другой стороны, если Вы обрабатываете элементы R, тогда элементы G и элементы B, все индивидуально (например, суммируете или вычитаете пар), у Вас есть на практике три независимых нейрона.

Так короче говоря, нет, единственный нейрон не берет в векторных значениях.

2
ответ дан Antti Huima 29 November 2019 в 02:44
поделиться

Это может быть тем, что Вы хотите, пока Вы пишете свою внутреннюю функцию соответственно.

примеры Вы упоминаете использование [0; 1] как их домен, но можно использовать R, RВІ, или независимо от того, что Вы хотите, пока функция, которую Вы используете в своих нейронах, определяется на этом домене.

В Вашем случае, можно определить функции на R3, чтобы позволить, чтобы значения RGB были обработаны

А тривиальный пример: используйте (x1, y1, z1), (x2, y2, z2)-> (ax1+x2, by1+y2, cz1+z2) как Ваша функция для преобразования двух цветов в один, b и c быть приобретением знаний чепцов, которые Вы определите во время фазы изучения.

Очень подробная информация (включая ответ на Ваш вопрос) доступна на Википедию .

1
ответ дан Svante 29 November 2019 в 02:44
поделиться
Другие вопросы по тегам:

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