Это не критично, если вы установите num_classes
выше, чем фактическое количество классов (это только увеличивает некоторые тензоры / переменные), но важно, если вы установите его ниже. первый случай не должен влиять на производительность модели.
При необходимости приблизительно в 10 миллионах уникальных ключей (например), лучший подход должен выбрать ключевое пространство, это экспоненциально больше, и начните случайным образом генерировать. Читайте о День рождения Paradox - это - главное, по поводу которого Вы должны быть взволнованы. Если Вы хотите 2^n уникальные и безопасные ключи, удостоверьтесь, что существует, по крайней мере, 2^ (2 * n) возможные значения. Вот грубый O (n, регистрируют n), алгоритм:
Псевдокод:
$last = null;
while ($current = getnext()) {
if ($last == $current) {
push($toDelete, $current);
}
$last = $current;
}
Метод Whatver, который Вы используете, я предложил бы, чтобы Вы добавили контрольный разряд или два как защита "первой строки" против людей, неправильных входящих или пытающихся изобрести число.
Давайте предположим, что можно использовать набор символов, скажем, 40 символов однозначных верхних, более низких и цифровых символов.
Для последовательности n символов, Вы имеете 40 <глоток> n глоток> комбинации
Таким образом, 8 символов дают довольно хорошее пространство для работы в - если бы Вы сгенерировали 10 миллионов кодов, то необходимо было бы попробовать сотни тысяч комбинаций к грубой силе код.
Или Вы приезжаете в от другого направления - дают количество возможный коды, сколько коды должны Вы генерировать для предотвращения прерывания, которое они называют День рождения Paradox ?
Взятие 8 символьных кодов, 6,553,600,000,000 является приблизительно 2 <глоток> 42 глоток>, таким образом Вы могли бы обоснованно генерировать 2 <глоток> 21 глоток> коды от него, или 2,097,152
Использовать алгоритм одноразового пароля?
RFC4225 детализирует один на основе алгоритма HMAC.
http://www.ietf.org/rfc/rfc4226.txt
, но вместо того, чтобы использовать 0-9 цифр base10 кодирование, используйте base32.
Как ни странно, с помощью следующего семени я смог сгенерировать только 32 уникальных строки.
ABCDEFGHJKLMNPQRSTUVWXYZ23456789
С более длинным семенем я смог сгенерировать намного больше - сгенерировал 40 000 уникальных строк. строки успешно.
ABCDEFGHJKLMNPQRSTUVWXYZ234567892345678923456789ABCDEFGHJKLMNPQRSTUVWXYZ234567892345678923456789ABCDEFGHJKLMNPQR923456789ABCDEFGHJKLMNPQ55Z92345678X8X8X8