Вам не нужно импортировать тензорный поток из керас. Вам даже не нужно импортировать тензорный поток. Keras по умолчанию использует тензор потока в качестве бэкэнда.
Вы можете сделать, например:
import keras as k
Хотя это не рекомендуется, так как вы будете импортировать всю библиотеку. Таким образом, вы обычно импортируете только те пакеты, которые вам нужны. Например:
from keras.models import Sequential
Если вы хотите получить доступ к тензорному потоку из керас, вы можете сделать:
Я сказал бы, что оба корректны в различных целях:
Если Вы выполняете простую go/no-go проверку, например, is_numeric (), то истина и ложь работает приятно.
Для чего-то более тщательно продуманного 0 == парадигма успеха полезна в этом, это позволяет больше чем одному состоянию ошибки быть возвращенным.
В этом случае вызывающая сторона может просто протестировать против 0 или исследовать не0 возвратов на более - определенное объяснение отказа. например, прослушивание файла может перестать работать из-за несуществования, недостаточных полномочий, и т.д.
Конвенция не точно, что Вы, кажется, думаете. Процессы должны выйти с 0 состояниями для указания на успех, и функции, которые возвращают коды ошибок, будут часто использовать 0 для указания "ни на какую ошибку". Но поскольку булевская переменная, 0 должна означать, что ложь и ненулевой должна означать верный. Использовать 0 для верной булевской переменной получит Вас на The Daily WTF когда-нибудь.
Это было некоторое время, так как я запрограммировал C, но я думаю, что Вы говорите приблизительно два различных видов о функциях здесь:
is_foo
функции, который проверяет на некоторое нечто свойства и возвраты 0
(false
) или не -0
(true
) указать на булево значение того свойства. Не вызывая те функции никакое состояние ошибки не ожидается (и если это происходит, это отображается на одном из тех значений).foo
функция, которая выполняет нечто действия. Это возвращается 0
на успехе и не -0
значение на ошибке.Особенно при именовании функции is_foo (), стандартные функции символа C (isdigit (), isupper (), и т.д.) являются хорошим прецедентом для того, чтобы сделать ее путь.
Это не так конвенция C, как UN*X окружает тот. Полагайте, что Стандарт C iasalpha (), isdigit () и т.д. функционирует. Они все возвращаются ненулевой для указания на успех. Нижняя строка: в 'верном' C является ненулевым.
Я не уверен, что соглашаюсь, что существует конвенция "возврата нуля от функции для указания на успех".
AFAIK, конвенция состоит в том, что нуль является ложью, и все ненули верны в случае предикатов.
Однако эта конвенция должна только относиться к очевидным предикатам, которые возвращают булевские переменные (например, истинные/ложные). Если основная цель функции не состоит в том, чтобы возвратить булево значение (например, printf, fopen, и т.д.), то возвращаемое значение используется для указания на причины отказа, и затем можно принять конвенцию UNIX "тишины или 0, если нет проблема".
Что касается возвращаемых значений, нет ничего неправильно с использованием фиксированных возвращаемых значений, оно делает все более удобным.
Большой риск, по моему скромному мнению, состоит в том, что многие люди объявляют свои собственные константы, и когда другие используют те же файлы, Вы начинаете сталкиваться с конфликтами с их собственными константами. Так Ваш TRUE/ЛОЖЬ и конфликт с чьим-либо TRUE/ЛОЖЬЮ по линии.
C не имеет никакого понятия булевской переменной кроме 0 являющийся ложью и чем-либо еще являющимся верным.
Идея возвратить 0 прибывает из наличия кода возврата, указывающего, каков отказ. Если Вы не делаете кода возврата, то нет ничего неправильно с обработкой 1 и 0 как истина и ложь. В конце концов, ИСТИНА И ЛОЖЬ просто определения типов для 1 и 0 в C.
Это должно быть хорошо зарегистрировано, хотя, и Ваши функциональные комментарии должен сказать, что explicity "Возвращает TRUE ИЛИ FALSE".
Вы могли также записать, если (is_invalid_foobar ()), который мог бы сделать оператор легким понять и все еще семантически исправить.
Это только плохо, если это записывает Вас. Если бы Вы никогда не прослеживаете ошибок до этого, я сказал бы, что Вы в порядке. То, что более важно, является комментарием выше функции, которая запускается с, "Возвраты обнуляют для..."
"Ненулевой ошибка" конвенция, используется при попытке сказать почему наряду с флагом ошибки.
мне, на самом деле проверяя по 0 кажется более естественным, и компилятор оптимизирует его так или иначе, таким образом, мне нравится писать, например,
если (check_foo == 0)//делают что-то
Возвращаемое значение функцией - соглашения для Истина и Ложь ИЛИ Успех и Ошибка: