Я изучаю keras с помощью r, и я просматриваю эту страницу, чтобы использовать Keras в классификации,
https://keras.rstudio.com/articles/tutorial_basic_classification.html
но я не совсем понимаю, что означает %<-%
У меня есть поиск %<-% в stackoverflow, но я не нашел ответа.
fashion_mnist <- dataset_fashion_mnist()
c(train_images, train_labels) %<-% fashion_mnist$train
c(test_images, test_labels) %<-% fashion_mnist$test
Я не думаю, что цель обмана действительно отвечает на вопрос. Конечно, это дает больше информации, но не о том, что делает конкретный оператор.
Не совсем так, но можно задать тот же вопрос о любом пользовательском инфиксном операторе. Я думаю, что идея в том, что когда человек узнает о пользовательских инфиксных операторах R, он должен иметь возможность просто использовать обычные механизмы справки.
Со страницы помощи:
?keras::`%<-%`
%<-% and %->% assign into the environment in which they are evaluated.
[..]
At its simplest, the name structure may be a single variable name, in which case %<-% and %->% perform regular assignment, x %<-% list(1, 2, 3) or list(1, 2, 3) %->% x.
Так что в данном случае это как x <- list(1,2,3)
. Хитрый трюк, когда вы хотите выполнить несколько заданий:
[..]
To specify multiple variable names use a call to c(), for example c(x, y, z) %<-% c(1, 2, 3).
Таким образом, вы можете назначить в одной строке нескольким объектам несколько выходов:
# basic usage
c(a, b) %<-% list(0, 1)
a # 0
b # 1
Это будет равно:
a<-0
b<-1
В вашем примере fashion_mnist$train
это объект (я думаю, list
), который имеет два элемента "train images"
и "train labels"
, поэтому этот однострочный элемент позволяет правильно назначить эти два элемента в среде.
Это поведение похоже на Python, который позволяет вам выполнять это «множественное назначение» по умолчанию.
R позволяет вам определять свои собственные инфиксные операторы в этом формате. Попробуйте
help("%<-%")
или просто распечатайте его в REPL, чтобы увидеть его исходный код, который, как я полагаю, определен в этом пакете.