├── .Rbuildignore ├── .gitattributes ├── .gitignore ├── .travis.yml ├── DESCRIPTION ├── LICENSE ├── LICENSE.md ├── NAMESPACE ├── R ├── autokeras_model_class.R ├── evaluate.R ├── export_model.R ├── fit.R ├── install_autokeras.R ├── model_image_classifier.R ├── model_image_regressor.R ├── model_structured_data_classifier.R ├── model_structured_data_regressor.R ├── model_text_classifier.R ├── model_text_regressor.R ├── package.R └── predict.R ├── README.Rmd ├── README.md ├── autokeras.Rproj ├── codecov.yml ├── docker └── Dockerfile ├── docs ├── 404.html ├── LICENSE-text.html ├── LICENSE.html ├── authors.html ├── bootstrap-toc.css ├── bootstrap-toc.js ├── docsearch.css ├── docsearch.js ├── index.html ├── link.svg ├── pkgdown.css ├── pkgdown.js ├── pkgdown.yml └── reference │ ├── AutokerasModel-class.html │ ├── Rplot001.png │ ├── autokeras-package.html │ ├── autokeras_model.html │ ├── evaluate.html │ ├── export_model.html │ ├── fit.html │ ├── image_classifier │ ├── oracle.json │ └── trial_2da69470fd31b602cff358fcfd16c1ab │ │ └── trial.json │ ├── index.html │ ├── install_autokeras.html │ ├── load_model.html │ ├── model_image_classifier.html │ ├── model_image_regressor.html │ ├── model_structured_data_classifier.html │ ├── model_structured_data_regressor.html │ ├── model_text_classifier.html │ ├── model_text_regressor.html │ ├── predict.html │ └── save_model.html ├── man ├── AutokerasModel-class.Rd ├── autokeras-package.Rd ├── evaluate.Rd ├── export_model.Rd ├── fit.Rd ├── install_autokeras.Rd ├── model_image_classifier.Rd ├── model_image_regressor.Rd ├── model_structured_data_classifier.Rd ├── model_structured_data_regressor.Rd ├── model_text_classifier.Rd ├── model_text_regressor.Rd └── predict.Rd ├── publications ├── LatinR2019 │ ├── Abstract │ │ ├── LatinR2019.Rmd │ │ ├── LatinR2019.pdf │ │ ├── README.Rmd │ │ ├── README.md │ │ ├── elsarticle.cls │ │ └── mybibfile.bib │ └── Presentation │ │ └── Scripts │ │ ├── 01_get_data.R │ │ ├── 02_imgs_to_array.R │ │ ├── 03_fit_model.R │ │ ├── 03_fit_model_emos.R │ │ ├── 03_fit_model_w_output.R │ │ ├── 04_predict.R │ │ ├── LatinR2019.Rproj │ │ ├── README.Rmd │ │ ├── README.md │ │ ├── emojifier │ │ ├── data │ │ │ ├── categories │ │ │ │ ├── activity.png │ │ │ │ ├── flags.png │ │ │ │ ├── food-drink.png │ │ │ │ ├── nature.png │ │ │ │ ├── objects.png │ │ │ │ ├── people.png │ │ │ │ ├── symbols.png │ │ │ │ └── travel-places.png │ │ │ └── emoji_ds.pkl │ │ ├── emojifier.Rproj │ │ ├── global.R │ │ ├── server.R │ │ └── ui.R │ │ ├── imgs │ │ ├── emojifier.png │ │ ├── emojizer_1.png │ │ ├── emojizer_2.png │ │ └── trivia.png │ │ ├── presentation.R │ │ └── trivia │ │ ├── data │ │ ├── emojis │ │ │ ├── Emojipedia │ │ │ │ ├── adhesive-bandage.png │ │ │ │ ├── auto-rickshaw.png │ │ │ │ ├── axe.png │ │ │ │ ├── ballet-shoes.png │ │ │ │ ├── banjo.png │ │ │ │ ├── beverage-box.png │ │ │ │ ├── briefs.png │ │ │ │ ├── brown-heart.png │ │ │ │ ├── butter.png │ │ │ │ ├── chair.png │ │ │ │ ├── deaf-person.png │ │ │ │ ├── diving-mask.png │ │ │ │ ├── diya-lamp.png │ │ │ │ ├── drop-of-blood.png │ │ │ │ ├── falafel.png │ │ │ │ ├── flamingo.png │ │ │ │ ├── garlic.png │ │ │ │ ├── guide-dog.png │ │ │ │ ├── hindu-temple.png │ │ │ │ ├── ice-cube.png │ │ │ │ ├── kite.png │ │ │ │ ├── kneeling-person.png │ │ │ │ ├── manual-wheelchair.png │ │ │ │ ├── mate-drink.png │ │ │ │ ├── mechanical-arm.png │ │ │ │ ├── mechanical-leg.png │ │ │ │ ├── motorized-wheelchair.png │ │ │ │ ├── one-piece-swimsuit.png │ │ │ │ ├── onion.png │ │ │ │ ├── orangutan.png │ │ │ │ ├── otter.png │ │ │ │ ├── oyster.png │ │ │ │ ├── parachute.png │ │ │ │ ├── pinching-hand.png │ │ │ │ ├── probing-cane.png │ │ │ │ ├── razor.png │ │ │ │ ├── ringed-planet.png │ │ │ │ ├── safety-vest.png │ │ │ │ ├── sari.png │ │ │ │ ├── shorts.png │ │ │ │ ├── skunk.png │ │ │ │ ├── sloth.png │ │ │ │ ├── standing-person.png │ │ │ │ ├── stethoscope.png │ │ │ │ ├── waffle.png │ │ │ │ ├── white-heart.png │ │ │ │ └── yawning-face.png │ │ │ ├── Google │ │ │ │ ├── adhesive-bandage.png │ │ │ │ ├── auto-rickshaw.png │ │ │ │ ├── axe.png │ │ │ │ ├── ballet-shoes.png │ │ │ │ ├── banjo.png │ │ │ │ ├── beverage-box.png │ │ │ │ ├── briefs.png │ │ │ │ ├── brown-heart.png │ │ │ │ ├── butter.png │ │ │ │ ├── chair.png │ │ │ │ ├── deaf-person.png │ │ │ │ ├── diving-mask.png │ │ │ │ ├── diya-lamp.png │ │ │ │ ├── drop-of-blood.png │ │ │ │ ├── falafel.png │ │ │ │ ├── flamingo.png │ │ │ │ ├── garlic.png │ │ │ │ ├── guide-dog.png │ │ │ │ ├── hindu-temple.png │ │ │ │ ├── ice-cube.png │ │ │ │ ├── kite.png │ │ │ │ ├── kneeling-person.png │ │ │ │ ├── manual-wheelchair.png │ │ │ │ ├── mate-drink.png │ │ │ │ ├── mechanical-arm.png │ │ │ │ ├── mechanical-leg.png │ │ │ │ ├── motorized-wheelchair.png │ │ │ │ ├── one-piece-swimsuit.png │ │ │ │ ├── onion.png │ │ │ │ ├── orangutan.png │ │ │ │ ├── otter.png │ │ │ │ ├── oyster.png │ │ │ │ ├── parachute.png │ │ │ │ ├── pinching-hand.png │ │ │ │ ├── probing-cane.png │ │ │ │ ├── razor.png │ │ │ │ ├── ringed-planet.png │ │ │ │ ├── safety-vest.png │ │ │ │ ├── sari.png │ │ │ │ ├── shorts.png │ │ │ │ ├── skunk.png │ │ │ │ ├── sloth.png │ │ │ │ ├── standing-person.png │ │ │ │ ├── stethoscope.png │ │ │ │ ├── waffle.png │ │ │ │ ├── white-heart.png │ │ │ │ └── yawning-face.png │ │ │ ├── JoyPixels │ │ │ │ ├── adhesive-bandage.png │ │ │ │ ├── auto-rickshaw.png │ │ │ │ ├── axe.png │ │ │ │ ├── ballet-shoes.png │ │ │ │ ├── banjo.png │ │ │ │ ├── beverage-box.png │ │ │ │ ├── briefs.png │ │ │ │ ├── brown-heart.png │ │ │ │ ├── butter.png │ │ │ │ ├── chair.png │ │ │ │ ├── deaf-person.png │ │ │ │ ├── diving-mask.png │ │ │ │ ├── diya-lamp.png │ │ │ │ ├── drop-of-blood.png │ │ │ │ ├── falafel.png │ │ │ │ ├── flamingo.png │ │ │ │ ├── garlic.png │ │ │ │ ├── guide-dog.png │ │ │ │ ├── hindu-temple.png │ │ │ │ ├── ice-cube.png │ │ │ │ ├── kite.png │ │ │ │ ├── kneeling-person.png │ │ │ │ ├── manual-wheelchair.png │ │ │ │ ├── mate-drink.png │ │ │ │ ├── mechanical-arm.png │ │ │ │ ├── mechanical-leg.png │ │ │ │ ├── motorized-wheelchair.png │ │ │ │ ├── one-piece-swimsuit.png │ │ │ │ ├── onion.png │ │ │ │ ├── orangutan.png │ │ │ │ ├── otter.png │ │ │ │ ├── oyster.png │ │ │ │ ├── parachute.png │ │ │ │ ├── pinching-hand.png │ │ │ │ ├── probing-cane.png │ │ │ │ ├── razor.png │ │ │ │ ├── ringed-planet.png │ │ │ │ ├── safety-vest.png │ │ │ │ ├── sari.png │ │ │ │ ├── shorts.png │ │ │ │ ├── skunk.png │ │ │ │ ├── sloth.png │ │ │ │ ├── standing-person.png │ │ │ │ ├── stethoscope.png │ │ │ │ ├── waffle.png │ │ │ │ ├── white-heart.png │ │ │ │ └── yawning-face.png │ │ │ ├── Microsoft │ │ │ │ ├── adhesive-bandage.png │ │ │ │ ├── auto-rickshaw.png │ │ │ │ ├── axe.png │ │ │ │ ├── ballet-shoes.png │ │ │ │ ├── banjo.png │ │ │ │ ├── beverage-box.png │ │ │ │ ├── briefs.png │ │ │ │ ├── brown-heart.png │ │ │ │ ├── butter.png │ │ │ │ ├── chair.png │ │ │ │ ├── deaf-person.png │ │ │ │ ├── diving-mask.png │ │ │ │ ├── diya-lamp.png │ │ │ │ ├── drop-of-blood.png │ │ │ │ ├── falafel.png │ │ │ │ ├── flamingo.png │ │ │ │ ├── garlic.png │ │ │ │ ├── guide-dog.png │ │ │ │ ├── hindu-temple.png │ │ │ │ ├── ice-cube.png │ │ │ │ ├── kite.png │ │ │ │ ├── kneeling-person.png │ │ │ │ ├── manual-wheelchair.png │ │ │ │ ├── mate-drink.png │ │ │ │ ├── mechanical-arm.png │ │ │ │ ├── mechanical-leg.png │ │ │ │ ├── motorized-wheelchair.png │ │ │ │ ├── one-piece-swimsuit.png │ │ │ │ ├── onion.png │ │ │ │ ├── orangutan.png │ │ │ │ ├── otter.png │ │ │ │ ├── oyster.png │ │ │ │ ├── parachute.png │ │ │ │ ├── pinching-hand.png │ │ │ │ ├── probing-cane.png │ │ │ │ ├── razor.png │ │ │ │ ├── ringed-planet.png │ │ │ │ ├── safety-vest.png │ │ │ │ ├── sari.png │ │ │ │ ├── shorts.png │ │ │ │ ├── skunk.png │ │ │ │ ├── sloth.png │ │ │ │ ├── standing-person.png │ │ │ │ ├── stethoscope.png │ │ │ │ ├── waffle.png │ │ │ │ ├── white-heart.png │ │ │ │ └── yawning-face.png │ │ │ ├── Samsung │ │ │ │ ├── brown-heart.png │ │ │ │ ├── deaf-person.png │ │ │ │ ├── guide-dog.png │ │ │ │ ├── kneeling-person.png │ │ │ │ ├── mechanical-arm.png │ │ │ │ ├── mechanical-leg.png │ │ │ │ ├── orangutan.png │ │ │ │ ├── pinching-hand.png │ │ │ │ ├── sloth.png │ │ │ │ ├── standing-person.png │ │ │ │ ├── white-heart.png │ │ │ │ └── yawning-face.png │ │ │ └── Twitter │ │ │ │ ├── adhesive-bandage.png │ │ │ │ ├── auto-rickshaw.png │ │ │ │ ├── axe.png │ │ │ │ ├── ballet-shoes.png │ │ │ │ ├── banjo.png │ │ │ │ ├── beverage-box.png │ │ │ │ ├── briefs.png │ │ │ │ ├── brown-heart.png │ │ │ │ ├── butter.png │ │ │ │ ├── chair.png │ │ │ │ ├── deaf-person.png │ │ │ │ ├── diving-mask.png │ │ │ │ ├── diya-lamp.png │ │ │ │ ├── drop-of-blood.png │ │ │ │ ├── falafel.png │ │ │ │ ├── flamingo.png │ │ │ │ ├── garlic.png │ │ │ │ ├── guide-dog.png │ │ │ │ ├── hindu-temple.png │ │ │ │ ├── ice-cube.png │ │ │ │ ├── kite.png │ │ │ │ ├── kneeling-person.png │ │ │ │ ├── manual-wheelchair.png │ │ │ │ ├── mate-drink.png │ │ │ │ ├── mechanical-arm.png │ │ │ │ ├── mechanical-leg.png │ │ │ │ ├── motorized-wheelchair.png │ │ │ │ ├── one-piece-swimsuit.png │ │ │ │ ├── onion.png │ │ │ │ ├── orangutan.png │ │ │ │ ├── otter.png │ │ │ │ ├── oyster.png │ │ │ │ ├── parachute.png │ │ │ │ ├── pinching-hand.png │ │ │ │ ├── probing-cane.png │ │ │ │ ├── razor.png │ │ │ │ ├── ringed-planet.png │ │ │ │ ├── safety-vest.png │ │ │ │ ├── sari.png │ │ │ │ ├── shorts.png │ │ │ │ ├── skunk.png │ │ │ │ ├── sloth.png │ │ │ │ ├── standing-person.png │ │ │ │ ├── stethoscope.png │ │ │ │ ├── waffle.png │ │ │ │ ├── white-heart.png │ │ │ │ └── yawning-face.png │ │ └── preds.rds │ │ ├── global.R │ │ ├── server.R │ │ ├── trivia.Rproj │ │ └── ui.R └── RStudio_tfblog_2019_04_16 │ ├── README.Rmd │ ├── README.md │ ├── autokeras.Rmd │ ├── autokeras.html │ ├── bibliography.bib │ └── images │ ├── img_1.jpg │ ├── mnist_ggplotted_num.png │ ├── some_mnist_nums.png │ └── thumbnail.jpg └── tests ├── testthat.R └── testthat ├── test-can_create_objects.R └── test-common_workflow.R /.Rbuildignore: -------------------------------------------------------------------------------- 1 | ^codecov\.yml$ 2 | ^\.travis\.yml$ 3 | ^.*\.Rproj$ 4 | ^\.Rproj\.user$ 5 | ^README\.Rmd$ 6 | ^get-pip\.py$ 7 | ^publications$ 8 | ^examples.*$ 9 | ^docker$ 10 | ^\.gitattributes$ 11 | ^docs$ 12 | ^LICENSE\.md$ 13 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | publications/* linguist-vendored 2 | docs/ 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .Rhistory 2 | .RData 3 | .Rproj.user 4 | example* 5 | rsconnect 6 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | # R for travis: see documentation at https://docs.travis-ci.com/user/languages/r 2 | language: r 3 | 4 | dist: bionic 5 | sudo: true 6 | warnings_are_errors: false 7 | 8 | addons: 9 | apt: 10 | sources: 11 | - deadsnakes 12 | packages: 13 | - python3.6 14 | - libpython3.6-dev 15 | - python3.6-venv 16 | - python3-pip 17 | 18 | before_install: 19 | - sudo ln -sf /usr/bin/python3.6 /usr/bin/python 20 | - sudo ln -sf /usr/bin/python3.6 /usr/bin/python3 21 | - pip3 install --upgrade --ignore-installed --user travis virtualenv > /dev/null 22 | 23 | before_script: 24 | - R CMD INSTALL . > /dev/null 25 | - R -e 'autokeras::install_autokeras()' 26 | 27 | after_success: 28 | - Rscript -e 'covr::codecov()' 29 | -------------------------------------------------------------------------------- /DESCRIPTION: -------------------------------------------------------------------------------- 1 | Package: autokeras 2 | Type: Package 3 | Title: R Interface to 'AutoKeras' 4 | Version: 1.0.12 5 | Authors@R: c( 6 | person(given = "Juan Cruz", family = "Rodriguez", 7 | role = c("aut", "cre"), email = "jcrodriguez@unc.edu.ar"), 8 | person(family = "Data Analytics at Texas A&M (DATA) Lab", role = "cph") 9 | ) 10 | Maintainer: Juan Cruz Rodriguez 11 | Description: R Interface to 'AutoKeras' . 12 | 'AutoKeras' is an open source software library for Automated Machine 13 | Learning (AutoML). The ultimate goal of AutoML is to provide easily 14 | accessible deep learning tools to domain experts with limited data science 15 | or machine learning background. 'AutoKeras' provides functions to 16 | automatically search for architecture and hyperparameters of deep 17 | learning models. 18 | Encoding: UTF-8 19 | License: MIT + file LICENSE 20 | URL: https://github.com/r-tensorflow/autokeras 21 | BugReports: https://github.com/r-tensorflow/autokeras/issues 22 | LazyData: true 23 | Depends: R (>= 3.1) 24 | Imports: 25 | keras, 26 | methods, 27 | reticulate, 28 | stats 29 | RoxygenNote: 7.1.1 30 | Suggests: 31 | testthat, 32 | covr 33 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | YEAR: 2020 2 | COPYRIGHT HOLDER: Juan Cruz Rodriguez 3 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | # MIT License 2 | 3 | Copyright (c) 2017 - 2020, Data Analytics at Texas A&M (DATA) Lab 4 | 5 | Copyright (c) 2020 Juan Cruz Rodriguez 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. 24 | -------------------------------------------------------------------------------- /NAMESPACE: -------------------------------------------------------------------------------- 1 | # Generated by roxygen2: do not edit by hand 2 | 3 | S3method(evaluate,AutokerasModel) 4 | S3method(fit,AutokerasModel) 5 | S3method(predict,AutokerasModel) 6 | export(evaluate) 7 | 8 | export(export_model) 9 | export(fit) 10 | 11 | export(install_autokeras) 12 | export(model_image_classifier) 13 | export(model_image_regressor) 14 | export(model_structured_data_classifier) 15 | export(model_structured_data_regressor) 16 | export(model_text_classifier) 17 | export(model_text_regressor) 18 | export(predict) 19 | 20 | importFrom(keras,evaluate) 21 | importFrom(keras,fit) 22 | importFrom(keras,install_keras) 23 | importFrom(methods,new) 24 | importFrom(methods,setClass) 25 | importFrom(reticulate,import) 26 | importFrom(reticulate,np_array) 27 | importFrom(stats,predict) 28 | importFrom(stats,runif) 29 | -------------------------------------------------------------------------------- /R/autokeras_model_class.R: -------------------------------------------------------------------------------- 1 | #' Autokeras Model Class Representation 2 | #' 3 | #' @importFrom methods setClass 4 | #' 5 | setClass("AutokerasModel", 6 | slots = c( 7 | model_name = "character", 8 | model = "ANY" 9 | # model="python.builtin.object" # not working 10 | ) 11 | ) 12 | -------------------------------------------------------------------------------- /R/evaluate.R: -------------------------------------------------------------------------------- 1 | #' Evaluate a Model 2 | #' 3 | #' Evaluate the best model for the given data. 4 | #' 5 | #' @param object : A trained AutokerasModel instance. 6 | #' @param x_test : Any allowed types according to the input node. Testing data. 7 | #' Check corresponding AutokerasModel help to note how it should be provided. 8 | #' @param y_test : Any allowed types according to the input node. Testing data. 9 | #' Check corresponding AutokerasModel help to note how it should be provided. 10 | #' Defaults to `NULL`. 11 | #' @param batch_size : numeric. Defaults to `32`. 12 | #' @param ... : Unused. 13 | #' 14 | #' @return numeric test loss (if the model has a single output and no metrics) 15 | #' or list of scalars (if the model has multiple outputs and/or metrics). The 16 | #' attribute model$metrics_names will give you the display labels for the 17 | #' scalar outputs. 18 | #' 19 | #' @examples 20 | #' \dontrun{ 21 | #' library("keras") 22 | #' 23 | #' # use the MNIST dataset as an example 24 | #' mnist <- dataset_mnist() 25 | #' c(x_train, y_train) %<-% mnist$train 26 | #' c(x_test, y_test) %<-% mnist$test 27 | #' 28 | #' library("autokeras") 29 | #' 30 | #' # Initialize the image classifier 31 | #' clf <- model_image_classifier(max_trials = 10) %>% # It tries 10 different models 32 | #' fit(x_train, y_train) # Feed the image classifier with training data 33 | #' 34 | #' # Predict with the best model 35 | #' (predicted_y <- clf %>% predict(x_test)) 36 | #' 37 | #' # Evaluate the best model with testing data 38 | #' clf %>% evaluate(x_test, y_test) 39 | #' 40 | #' # Get the best trained Keras model, to work with the keras R library 41 | #' export_model(clf) 42 | #' } 43 | #' 44 | #' @importFrom keras evaluate 45 | #' @rawNamespace export(evaluate) 46 | #' 47 | #' @name evaluate 48 | NULL 49 | 50 | #' @rdname evaluate 51 | #' @export 52 | #' 53 | evaluate.AutokerasModel <- function(object, 54 | x_test, 55 | y_test = NULL, 56 | batch_size = 32, 57 | ...) { 58 | if (object@model_name %in% c("text_classifier", "text_regressor")) { 59 | x_test <- np_array(x_test, dtype = "unicode") 60 | } 61 | 62 | object@model$evaluate( 63 | x = x_test, y = y_test, batch_size = as.integer(batch_size) 64 | ) 65 | } 66 | -------------------------------------------------------------------------------- /R/export_model.R: -------------------------------------------------------------------------------- 1 | #' Export Model 2 | #' 3 | #' Export the best trained Keras Model.\cr 4 | #' Actually, exporting the model as a Keras model is not working as expected, 5 | #' check out the bug https://github.com/keras-team/autokeras/issues/929 . 6 | #' 7 | #' @param autokeras_model : A trained AutokerasModel instance. 8 | #' 9 | #' @return keras.Model instance. The best model found during the search, loaded 10 | #' with trained weights. 11 | #' 12 | #' @examples 13 | #' \dontrun{ 14 | #' library("keras") 15 | #' 16 | #' # use the MNIST dataset as an example 17 | #' mnist <- dataset_mnist() 18 | #' c(x_train, y_train) %<-% mnist$train 19 | #' c(x_test, y_test) %<-% mnist$test 20 | #' 21 | #' library("autokeras") 22 | #' 23 | #' # Initialize the image classifier 24 | #' clf <- model_image_classifier(max_trials = 10) %>% # It tries 10 different models 25 | #' fit(x_train, y_train) # Feed the image classifier with training data 26 | #' 27 | #' # Predict with the best model 28 | #' (predicted_y <- clf %>% predict(x_test)) 29 | #' 30 | #' # Evaluate the best model with testing data 31 | #' clf %>% evaluate(x_test, y_test) 32 | #' 33 | #' # Get the best trained Keras model, to work with the keras R library 34 | #' export_model(clf) 35 | #' } 36 | #' 37 | #' @export 38 | #' 39 | export_model <- function(autokeras_model) { 40 | ran_ok <- !inherits(try({ 41 | keras_model <- autokeras_model@model$export_model() 42 | }), "try-error") 43 | 44 | if (!ran_ok) { 45 | cat("Could not export Keras model.") 46 | } 47 | 48 | return(keras_model) 49 | } 50 | -------------------------------------------------------------------------------- /R/fit.R: -------------------------------------------------------------------------------- 1 | #' Search for the Best Model and Hyperparameters 2 | #' 3 | #' It will search for the best model and hyperparameters based on the 4 | #' performances on validation data. 5 | #' 6 | #' @param object : An AutokerasModel instance. 7 | #' @param x : Training data x. Check corresponding AutokerasModel help to note 8 | #' how it should be provided. 9 | #' @param y : Training data y. Check corresponding AutokerasModel help to note 10 | #' how it should be provided. 11 | #' @param epochs : numeric. The number of epochs to train each model during the 12 | #' search. If unspecified, by default we train for a maximum of `1000` epochs, 13 | #' but we stop training if the validation loss stops improving for 10 epochs 14 | #' (unless you specified an EarlyStopping callback as part of the `callbacks` 15 | #' argument, in which case the EarlyStopping callback you specified will 16 | #' determine early stopping). 17 | #' @param callbacks : list of Keras callbacks to apply during training and 18 | #' validation. 19 | #' @param validation_split : numeric between 0 and 1. Defaults to `0.2`. 20 | #' Fraction of the training data to be used as validation data. The model will 21 | #' set apart this fraction of the training data, will not train on it, and 22 | #' will evaluate the loss and any model metrics on this data at the end of 23 | #' each epoch. The validation data is selected from the last samples in the 24 | #' `x` and `y` data provided, before shuffling. This argument is not supported 25 | #' when `x` is a dataset. The best model found would be fit on the entire 26 | #' dataset including the validation data. 27 | #' @param validation_data : Data on which to evaluate the loss and any model 28 | #' metrics at the end of each epoch. The model will not be trained on this 29 | #' data. `validation_data` will override `validation_split`. The type of the 30 | #' validation data should be the same as the training data. The best model 31 | #' found would be fit on the training dataset without the validation data. 32 | #' @param ... : Unused. 33 | #' 34 | #' @return A trained AutokerasModel. 35 | #' 36 | #' @examples 37 | #' \dontrun{ 38 | #' library("keras") 39 | #' 40 | #' # use the MNIST dataset as an example 41 | #' mnist <- dataset_mnist() 42 | #' c(x_train, y_train) %<-% mnist$train 43 | #' c(x_test, y_test) %<-% mnist$test 44 | #' 45 | #' library("autokeras") 46 | #' 47 | #' # Initialize the image classifier 48 | #' clf <- model_image_classifier(max_trials = 10) %>% # It tries 10 different models 49 | #' fit(x_train, y_train) # Feed the image classifier with training data 50 | #' 51 | #' # If you want to use own valitadion data do: 52 | #' clf <- model_image_classifier(max_trials = 10) %>% 53 | #' fit( 54 | #' x_train, 55 | #' y_train, 56 | #' validation_data = list(x_test, y_test) 57 | #' ) 58 | #' 59 | #' # Predict with the best model 60 | #' (predicted_y <- clf %>% predict(x_test)) 61 | #' 62 | #' # Evaluate the best model with testing data 63 | #' clf %>% evaluate(x_test, y_test) 64 | #' 65 | #' # Get the best trained Keras model, to work with the keras R library 66 | #' export_model(clf) 67 | #' } 68 | #' 69 | #' @importFrom reticulate np_array 70 | #' @importFrom keras fit 71 | #' @rawNamespace export(fit) 72 | #' 73 | #' @name fit 74 | NULL 75 | 76 | #' @rdname fit 77 | #' @export 78 | #' 79 | fit.AutokerasModel <- function(object, 80 | x = NULL, 81 | y = NULL, 82 | epochs = 1000, 83 | callbacks = NULL, 84 | validation_split = 0.2, 85 | validation_data = NULL, 86 | ...) { 87 | if (object@model_name %in% c("text_classifier", "text_regressor")) { 88 | # for these models, x has to be an array of strings 89 | x <- np_array(x, dtype = "unicode") 90 | if (!is.null(validation_data) && length(validation_data) == 2) { 91 | validation_data[[1]] <- np_array(validation_data[[1]], dtype = "unicode") 92 | } 93 | } 94 | 95 | object@model$fit( 96 | x = x, y = y, epochs = as.integer(epochs), callbacks = callbacks, 97 | validation_split = validation_split, validation_data = validation_data 98 | ) 99 | return(invisible(object)) 100 | } 101 | -------------------------------------------------------------------------------- /R/model_image_classifier.R: -------------------------------------------------------------------------------- 1 | #' AutoKeras Image Classifier Model 2 | #' 3 | #' AutoKeras image classification class.\cr 4 | #' It is used for image classification. It searches convolutional neural 5 | #' network architectures for the best configuration for the image dataset. 6 | #' To `fit`, `evaluate` or `predict`, format inputs as: 7 | #' \itemize{ 8 | #' \item{ 9 | #' x : array. The shape of the data should be 3 or 4 dimensional, the last 10 | #' dimension of which should be channel dimension. 11 | #' } 12 | #' \item{ 13 | #' y : array. It can be raw labels, one-hot encoded if more than two classes, or 14 | #' binary encoded for binary classification. 15 | #' } 16 | #' } 17 | #' 18 | #' Important: The object returned by this function behaves like an R6 object, 19 | #' i.e., within function calls with this object as parameter, it is most likely 20 | #' that the object will be modified. Therefore it is not necessary to assign 21 | #' the result of the functions to the same object. 22 | #' 23 | #' @param num_classes : numeric. Defaults to `NULL`. If `NULL`, it will infer 24 | #' from the data. 25 | #' @param multi_label : logical. Defaults to `FALSE`. 26 | #' @param loss : A Keras loss function. Defaults to use `binary_crossentropy` or 27 | #' `categorical_crossentropy` based on the number of classes. 28 | #' @param metrics : A list of Keras metrics. Defaults to use `accuracy`. 29 | #' @param name : character. The name of the AutoModel. Defaults to 30 | #' "image_classifier". 31 | #' @param max_trials : numeric. The maximum number of different Keras Models to 32 | #' try. The search may finish before reaching the `max_trials`. Defaults to 33 | #' `100`. 34 | #' @param directory : character. The path to a directory for storing the search 35 | #' outputs. Defaults to `tempdir()`, which would create a folder with the name 36 | #' of the AutoModel in the current directory. 37 | #' @param objective : character. Name of model metric to minimize or maximize, 38 | #' e.g. "val_accuracy". Defaults to "val_loss". 39 | #' @param overwrite : logical. Defaults to `TRUE`. If `FALSE`, reloads an 40 | #' existing project of the same name if one is found. Otherwise, overwrites 41 | #' the project. 42 | #' @param seed : numeric. Random seed. Defaults to `runif(1, 0, 10e6)`. 43 | #' 44 | #' @return A non-trained image classifier AutokerasModel. 45 | #' 46 | #' @examples 47 | #' \dontrun{ 48 | #' library("keras") 49 | #' 50 | #' # use the MNIST dataset as an example 51 | #' mnist <- dataset_mnist() 52 | #' c(x_train, y_train) %<-% mnist$train 53 | #' c(x_test, y_test) %<-% mnist$test 54 | #' 55 | #' library("autokeras") 56 | #' 57 | #' # Initialize the image classifier 58 | #' clf <- model_image_classifier(max_trials = 10) %>% # It tries 10 different models 59 | #' fit(x_train, y_train) # Feed the image classifier with training data 60 | #' 61 | #' # If you want to use own valitadion data do: 62 | #' clf <- model_image_classifier(max_trials = 10) %>% 63 | #' fit( 64 | #' x_train, 65 | #' y_train, 66 | #' validation_data = list(x_test, y_test) 67 | #' ) 68 | #' 69 | #' # Predict with the best model 70 | #' (predicted_y <- clf %>% predict(x_test)) 71 | #' 72 | #' # Evaluate the best model with testing data 73 | #' clf %>% evaluate(x_test, y_test) 74 | #' 75 | #' # Get the best trained Keras model, to work with the keras R library 76 | #' export_model(clf) 77 | #' } 78 | #' 79 | #' @importFrom stats runif 80 | #' @importFrom methods new 81 | #' 82 | #' @export 83 | #' 84 | model_image_classifier <- function(num_classes = NULL, 85 | multi_label = FALSE, 86 | loss = NULL, 87 | metrics = list("accuracy"), 88 | name = "image_classifier", 89 | max_trials = 100, 90 | directory = tempdir(), 91 | objective = "val_loss", 92 | overwrite = TRUE, 93 | seed = runif(1, 0, 10e6)) { 94 | if (!is.null(num_classes)) { 95 | num_classes <- as.integer(num_classes) 96 | } 97 | 98 | new( 99 | "AutokerasModel", 100 | model_name = "image_classifier", 101 | model = autokeras$ImageClassifier( 102 | num_classes = num_classes, multi_label = multi_label, loss = loss, 103 | metrics = metrics, project_name = name, max_trials = as.integer(max_trials), 104 | directory = directory, objective = objective, overwrite = overwrite, 105 | seed = as.integer(seed) 106 | ) 107 | ) 108 | } 109 | -------------------------------------------------------------------------------- /R/model_image_regressor.R: -------------------------------------------------------------------------------- 1 | #' AutoKeras Image Regressor Model 2 | #' 3 | #' AutoKeras image regression class.\cr 4 | #' It is used for image regression. It searches convolutional neural network 5 | #' architectures for the best configuration for the image dataset. 6 | #' To `fit`, `evaluate` or `predict`, format inputs as: 7 | #' \itemize{ 8 | #' \item{ 9 | #' x : array. The shape of the data should be 3 or 4 dimensional, the last 10 | #' dimension of which should be channel dimension. 11 | #' } 12 | #' \item{ 13 | #' y : array. The targets passing to the head would have to be array or 14 | #' data.frame. It can be single-column or multi-column. The values should all 15 | #' be numerical. 16 | #' } 17 | #' } 18 | #' 19 | #' Important: The object returned by this function behaves like an R6 object, 20 | #' i.e., within function calls with this object as parameter, it is most likely 21 | #' that the object will be modified. Therefore it is not necessary to assign 22 | #' the result of the functions to the same object. 23 | #' 24 | #' @param output_dim : numeric. The number of output dimensions. Defaults to 25 | #' `NULL`. If `NULL`, it will infer from the data. 26 | #' @param loss : A Keras loss function. Defaults to use "mean_squared_error". 27 | #' @param metrics : A list of Keras metrics. Defaults to use 28 | #' "mean_squared_error". 29 | #' @param name : character. The name of the AutoModel. Defaults to 30 | #' "image_regressor". 31 | #' @param max_trials : numeric. The maximum number of different Keras Models to 32 | #' try. The search may finish before reaching the `max_trials`. Defaults to 33 | #' `100`. 34 | #' @param directory : character. The path to a directory for storing the search 35 | #' outputs. Defaults to `tempdir()`, which would create a folder with the name 36 | #' of the AutoModel in the current directory. 37 | #' @param objective : character. Name of model metric to minimize or maximize, 38 | #' e.g. "val_accuracy". Defaults to "val_loss". 39 | #' @param overwrite : logical. Defaults to `TRUE`. If `FALSE`, reloads an 40 | #' existing project of the same name if one is found. Otherwise, overwrites 41 | #' the project. 42 | #' @param seed : numeric. Random seed. Defaults to `runif(1, 0, 10e6)`. 43 | #' 44 | #' @return A non-trained image regressor AutokerasModel. 45 | #' 46 | #' @examples 47 | #' \dontrun{ 48 | #' library("keras") 49 | #' 50 | #' # use the MNIST dataset as an example 51 | #' mnist <- dataset_mnist() 52 | #' c(x_train, y_train) %<-% mnist$train 53 | #' c(x_test, y_test) %<-% mnist$test 54 | #' 55 | #' library("autokeras") 56 | #' 57 | #' # Initialize the image regressor 58 | #' reg <- model_image_regressor(max_trials = 10) %>% # It tries 10 different models 59 | #' fit(x_train, y_train) # Feed the image regressor with training data 60 | #' 61 | #' # If you want to use own valitadion data do: 62 | #' reg <- model_image_regressor(max_trials = 10) %>% 63 | #' fit( 64 | #' x_train, 65 | #' y_train, 66 | #' validation_data = list(x_test, y_test) 67 | #' ) 68 | #' 69 | #' # Predict with the best model 70 | #' (predicted_y <- reg %>% predict(x_test)) 71 | #' 72 | #' # Evaluate the best model with testing data 73 | #' reg %>% evaluate(x_test, y_test) 74 | #' 75 | #' # Get the best trained Keras model, to work with the keras R library 76 | #' export_model(reg) 77 | #' } 78 | #' 79 | #' @importFrom stats runif 80 | #' @importFrom methods new 81 | #' 82 | #' @export 83 | #' 84 | model_image_regressor <- function(output_dim = NULL, 85 | loss = "mean_squared_error", 86 | metrics = NULL, 87 | name = "image_regressor", 88 | max_trials = 100, 89 | directory = tempdir(), 90 | objective = "val_loss", 91 | overwrite = TRUE, 92 | seed = runif(1, 0, 10e6)) { 93 | if (!is.null(output_dim)) { 94 | output_dim <- as.integer(output_dim) 95 | } 96 | 97 | new( 98 | "AutokerasModel", 99 | model_name = "image_regressor", 100 | model = autokeras$ImageRegressor( 101 | output_dim = output_dim, loss = loss, metrics = metrics, project_name = name, 102 | max_trials = as.integer(max_trials), directory = directory, 103 | objective = objective, overwrite = overwrite, seed = as.integer(seed) 104 | ) 105 | ) 106 | } 107 | -------------------------------------------------------------------------------- /R/model_text_regressor.R: -------------------------------------------------------------------------------- 1 | #' AutoKeras Text Regressor Model 2 | #' 3 | #' AutoKeras text regression class.\cr 4 | #' To `fit`, `evaluate` or `predict`, format inputs as: 5 | #' \itemize{ 6 | #' \item{ 7 | #' x : array. The input data should be array. The data should be one 8 | #' dimensional. Each element in the data should be a string which is a full 9 | #' sentence. 10 | #' } 11 | #' \item{ 12 | #' y : array. The targets passing to the head would have to be array or 13 | #' data.frame. It can be single-column or multi-column. The values should all 14 | #' be numerical. 15 | #' } 16 | #' } 17 | #' 18 | #' Important: The object returned by this function behaves like an R6 object, 19 | #' i.e., within function calls with this object as parameter, it is most likely 20 | #' that the object will be modified. Therefore it is not necessary to assign 21 | #' the result of the functions to the same object. 22 | #' 23 | #' @param output_dim : numeric. The number of output dimensions. Defaults to 24 | #' `NULL`. If `NULL`, it will infer from the data. 25 | #' @param loss : A Keras loss function. Defaults to use "mean_squared_error". 26 | #' @param metrics : A list of Keras metrics. Defaults to use 27 | #' "mean_squared_error". 28 | #' @param name : character. The name of the AutoModel. Defaults to 29 | #' "text_regressor". 30 | #' @param max_trials : numeric. The maximum number of different Keras Models to 31 | #' try. The search may finish before reaching the `max_trials`. Defaults to 32 | #' `100`. 33 | #' @param directory : character. The path to a directory for storing the search 34 | #' outputs. Defaults to `tempdir()`, which would create a folder with the name 35 | #' of the AutoModel in the current directory. 36 | #' @param objective : character. Name of model metric to minimize or maximize, 37 | #' e.g. "val_accuracy". Defaults to "val_loss". 38 | #' @param overwrite : logical. Defaults to `TRUE`. If `FALSE`, reloads an 39 | #' existing project of the same name if one is found. Otherwise, overwrites 40 | #' the project. 41 | #' @param seed : numeric. Random seed. Defaults to `runif(1, 0, 10e6)`. 42 | #' 43 | #' @return A non-trained text regressor AutokerasModel. 44 | #' 45 | #' @examples 46 | #' \dontrun{ 47 | #' library("keras") 48 | #' 49 | #' # Get IMDb dataset 50 | #' imdb <- dataset_imdb(num_words = 1000) 51 | #' c(x_train, y_train) %<-% imdb$train 52 | #' c(x_test, y_test) %<-% imdb$test 53 | #' 54 | #' # AutoKeras procceses each text data point as a character vector, 55 | #' # i.e., x_train[[1]] " this film was just brilliant casting..", 56 | #' # so we need to transform the dataset. 57 | #' word_index <- dataset_imdb_word_index() 58 | #' word_index <- c( 59 | #' "", "", "", "", 60 | #' names(word_index)[order(unlist(word_index))] 61 | #' ) 62 | #' x_train <- lapply(x_train, function(x) { 63 | #' paste(word_index[x + 1], collapse = " ") 64 | #' }) 65 | #' x_test <- lapply(x_test, function(x) { 66 | #' paste(word_index[x + 1], collapse = " ") 67 | #' }) 68 | #' 69 | #' x_train <- matrix(unlist(x_train), ncol = 1) 70 | #' x_test <- matrix(unlist(x_test), ncol = 1) 71 | #' y_train <- array(unlist(y_train)) 72 | #' y_test <- array(unlist(y_test)) 73 | #' 74 | #' library("autokeras") 75 | #' 76 | #' # Initialize the text regressor 77 | #' reg <- model_text_regressor(max_trials = 10) %>% # It tries 10 different models 78 | #' fit(x_train, y_train) # Feed the text regressor with training data 79 | #' 80 | #' # If you want to use own valitadion data do: 81 | #' reg <- model_text_regressor(max_trials = 10) %>% 82 | #' fit( 83 | #' x_train, 84 | #' y_train, 85 | #' validation_data = list(x_test, y_test) 86 | #' ) 87 | #' 88 | #' # Predict with the best model 89 | #' (predicted_y <- reg %>% predict(x_test)) 90 | #' 91 | #' # Evaluate the best model with testing data 92 | #' reg %>% evaluate(x_test, y_test) 93 | #' 94 | #' # Get the best trained Keras model, to work with the keras R library 95 | #' export_model(reg) 96 | #' } 97 | #' 98 | #' @importFrom stats runif 99 | #' @importFrom methods new 100 | #' 101 | #' @export 102 | #' 103 | model_text_regressor <- function(output_dim = NULL, 104 | loss = "mean_squared_error", 105 | metrics = NULL, 106 | name = "text_regressor", 107 | max_trials = 100, 108 | directory = tempdir(), 109 | objective = "val_loss", 110 | overwrite = TRUE, 111 | seed = runif(1, 0, 10e6)) { 112 | if (!is.null(output_dim)) { 113 | output_dim <- as.integer(output_dim) 114 | } 115 | 116 | new( 117 | "AutokerasModel", 118 | model_name = "text_regressor", 119 | model = autokeras$TextRegressor( 120 | output_dim = output_dim, loss = loss, metrics = metrics, project_name = name, 121 | max_trials = as.integer(max_trials), directory = directory, 122 | objective = objective, overwrite = overwrite, seed = as.integer(seed) 123 | ) 124 | ) 125 | } 126 | -------------------------------------------------------------------------------- /R/package.R: -------------------------------------------------------------------------------- 1 | #' R Interface to AutoKeras 2 | #' 3 | #' [AutoKeras](https://autokeras.com/) is an open source software library for 4 | #' automated machine learning (AutoML). It is developed by 5 | #' [DATA Lab](https://people.engr.tamu.edu/xiahu/index.html) at Texas A&M 6 | #' University and community contributors. The ultimate goal of AutoML is to 7 | #' provide easily accessible deep learning tools to domain experts with limited 8 | #' data science or machine learning background. AutoKeras provides functions 9 | #' to automatically search for architecture and hyperparameters of deep 10 | #' learning models. 11 | #' 12 | #' @importFrom reticulate import 13 | "_PACKAGE" 14 | 15 | # Main Keras module 16 | autokeras <- NULL 17 | 18 | .onLoad <- function(libname, pkgname) { 19 | # delay load keras 20 | autokeras <<- reticulate::import("autokeras", delay_load = list( 21 | # todo: remove? priority, and get_module not documented in 22 | # reticulate package 23 | priority = 10, 24 | environment = "r-tensorflow", 25 | get_module = function() { 26 | "autokeras" 27 | }, 28 | on_load = function() { 29 | NULL 30 | }, 31 | on_error = function(e) { 32 | NULL 33 | } 34 | )) 35 | } 36 | -------------------------------------------------------------------------------- /R/predict.R: -------------------------------------------------------------------------------- 1 | #' Model Predictions 2 | #' 3 | #' Predict the output for a given testing data. 4 | #' 5 | #' @param object : A trained AutokerasModel instance. 6 | #' @param x : Any allowed types according to the input node. Testing data. Check 7 | #' corresponding AutokerasModel help to note how it should be provided. 8 | #' @param batch_size : numeric. Defaults to `32`. 9 | #' @param ... : Unused. 10 | #' 11 | #' @return A one-column matrix with the predicted values as rows. 12 | #' 13 | #' @examples 14 | #' \dontrun{ 15 | #' library("keras") 16 | #' 17 | #' # use the MNIST dataset as an example 18 | #' mnist <- dataset_mnist() 19 | #' c(x_train, y_train) %<-% mnist$train 20 | #' c(x_test, y_test) %<-% mnist$test 21 | #' 22 | #' library("autokeras") 23 | #' 24 | #' # Initialize the image classifier 25 | #' clf <- model_image_classifier(max_trials = 10) %>% # It tries 10 different models 26 | #' fit(x_train, y_train) # Feed the image classifier with training data 27 | #' 28 | #' # Predict with the best model 29 | #' (predicted_y <- clf %>% predict(x_test)) 30 | #' 31 | #' # Evaluate the best model with testing data 32 | #' clf %>% evaluate(x_test, y_test) 33 | #' 34 | #' # Get the best trained Keras model, to work with the keras R library 35 | #' export_model(clf) 36 | #' } 37 | #' 38 | #' @importFrom stats predict 39 | #' @rawNamespace export(predict) 40 | #' 41 | #' @name predict 42 | NULL 43 | 44 | #' @rdname predict 45 | #' @export 46 | #' 47 | predict.AutokerasModel <- function(object, x, batch_size = 32, ...) { 48 | if (object@model_name %in% c("text_classifier", "text_regressor")) { 49 | x <- np_array(x, dtype = "unicode") 50 | } 51 | 52 | object@model$predict(x = x, batch_size = as.integer(batch_size)) 53 | } 54 | -------------------------------------------------------------------------------- /README.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "R Interface to AutoKeras" 3 | output: github_document 4 | --- 5 | 6 | [![Travis Build Status](https://travis-ci.org/r-tensorflow/autokeras.svg?branch=master)](https://travis-ci.org/r-tensorflow/autokeras) 7 | [![Coverage status](https://img.shields.io/codecov/c/github/jcrodriguez1989/autokeras/master.svg)](https://codecov.io/github/jcrodriguez1989/autokeras?branch=master) 8 | [![lifecycle](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental) 9 | 10 | 11 | [AutoKeras](https://autokeras.com/) is an open source software library for 12 | automated machine learning (AutoML). It is developed by 13 | [DATA Lab](https://people.engr.tamu.edu/xiahu/index.html) at Texas A&M 14 | University and community contributors. The ultimate goal of AutoML is to 15 | provide easily accessible deep learning tools to domain experts with limited 16 | data science or machine learning background. AutoKeras provides functions 17 | to automatically search for architecture and hyperparameters of deep 18 | learning models. 19 | 20 | Check out the [AutoKeras blogpost at the **RStudio TensorFlow for R blog**](https://blogs.rstudio.com/tensorflow/posts/2019-04-16-autokeras/). 21 | 22 | ## Dependencies 23 | 24 | * [AutoKeras](https://autokeras.com/) requires Python >= 3.5 . 25 | 26 | ## Installation 27 | 28 | Install the current released version of `{autokeras}` from [CRAN](https://cran.r-project.org/package=autokeras): 29 | 30 | ```{r eval = FALSE} 31 | install.packages("autokeras") 32 | ``` 33 | 34 | Or install the development version from GitHub: 35 | 36 | ```{r eval = FALSE} 37 | if (!require("remotes")) { 38 | install.packages("remotes") 39 | } 40 | remotes::install_github("r-tensorflow/autokeras") 41 | ``` 42 | 43 | Then, use the `install_autokeras()` function to install TensorFlow: 44 | 45 | ```{r eval = FALSE} 46 | library("autokeras") 47 | install_autokeras() 48 | ``` 49 | 50 | ## Docker 51 | 52 | `autokeras` R package has a configured Docker image. 53 | 54 | Steps to run it: 55 | 56 | From a bash console: 57 | 58 | ```{bash eval = FALSE} 59 | docker pull jcrodriguez1989/r-autokeras:1.0.0 60 | docker run -it jcrodriguez1989/r-autokeras:1.0.0 /bin/bash 61 | ``` 62 | 63 | To run the docker image, and share the current folder (in home machine) to the `/data` path (in the docker machine), then do: 64 | 65 | ```{bash eval = FALSE} 66 | docker run -it -v ${PWD}:/data jcrodriguez1989/r-autokeras:1.0.0 /bin/bash 67 | ls /data # once when the docker image is running 68 | ``` 69 | 70 | ## Examples 71 | 72 | ### CIFAR-10 dataset 73 | 74 | ```{r eval = FALSE} 75 | library("keras") 76 | 77 | # Get CIFAR-10 dataset, but not preprocessing needed 78 | cifar10 <- dataset_cifar10() 79 | c(x_train, y_train) %<-% cifar10$train 80 | c(x_test, y_test) %<-% cifar10$test 81 | ``` 82 | 83 | ```{r eval = FALSE} 84 | library("autokeras") 85 | 86 | # Create an image classifier, and train 10 different models 87 | clf <- model_image_classifier(max_trials = 10) %>% 88 | fit(x_train, y_train) 89 | ``` 90 | 91 | ```{r eval = FALSE} 92 | # And use it to evaluate, predict 93 | clf %>% evaluate(x_test, y_test) 94 | ``` 95 | 96 | ```{r eval = FALSE} 97 | clf %>% predict(x_test[1:10, , , ]) 98 | ``` 99 | 100 | ```{r eval = FALSE} 101 | # Get the best trained Keras model, to work with the keras R library 102 | (keras_model <- export_model(clf)) 103 | ``` 104 | 105 | ### IMDb dataset 106 | 107 | ```{r eval = FALSE} 108 | library("keras") 109 | 110 | # Get IMDb dataset 111 | imdb <- dataset_imdb(num_words = 1000) 112 | c(x_train, y_train) %<-% imdb$train 113 | c(x_test, y_test) %<-% imdb$test 114 | 115 | # AutoKeras procceses each text data point as a character vector, 116 | # i.e., x_train[[1]] " this film was just brilliant casting..", 117 | # so we need to transform the dataset. 118 | word_index <- dataset_imdb_word_index() 119 | word_index <- c( 120 | "", "", "", "", 121 | names(word_index)[order(unlist(word_index))] 122 | ) 123 | x_train <- lapply(x_train, function(x) { 124 | paste(word_index[x + 1], collapse = " ") 125 | }) 126 | x_test <- lapply(x_test, function(x) { 127 | paste(word_index[x + 1], collapse = " ") 128 | }) 129 | 130 | x_train <- matrix(unlist(x_train), ncol = 1) 131 | x_test <- matrix(unlist(x_test), ncol = 1) 132 | y_train <- array(unlist(y_train)) 133 | y_test <- array(unlist(y_test)) 134 | ``` 135 | 136 | ```{r eval = FALSE} 137 | library("autokeras") 138 | 139 | # Create a text classifier, and train 10 different models 140 | clf <- model_text_classifier(max_trials = 10) %>% 141 | fit(x_train, y_train) 142 | ``` 143 | 144 | ```{r eval = FALSE} 145 | # And use it to evaluate, predict 146 | clf %>% evaluate(x_test, y_test) 147 | ``` 148 | 149 | ```{r eval = FALSE} 150 | clf %>% predict(x_test[1:10]) 151 | ``` 152 | 153 | ```{r eval = FALSE} 154 | # Get the best trained Keras model, to work with the keras R library 155 | export_model(clf) 156 | ``` 157 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | R Interface to AutoKeras 2 | ================ 3 | 4 | [![Travis Build 5 | Status](https://travis-ci.org/r-tensorflow/autokeras.svg?branch=master)](https://travis-ci.org/r-tensorflow/autokeras) 6 | [![Coverage 7 | status](https://img.shields.io/codecov/c/github/jcrodriguez1989/autokeras/master.svg)](https://codecov.io/github/jcrodriguez1989/autokeras?branch=master) 8 | [![lifecycle](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental) 9 | 10 | [AutoKeras](https://autokeras.com/) is an open source software library 11 | for automated machine learning (AutoML). It is developed by [DATA 12 | Lab](https://people.engr.tamu.edu/xiahu/index.html) at Texas A&M 13 | University and community contributors. The ultimate goal of AutoML is to 14 | provide easily accessible deep learning tools to domain experts with 15 | limited data science or machine learning background. AutoKeras provides 16 | functions to automatically search for architecture and hyperparameters 17 | of deep learning models. 18 | 19 | Check out the [AutoKeras blogpost at the **RStudio TensorFlow for R 20 | blog**](https://blogs.rstudio.com/tensorflow/posts/2019-04-16-autokeras/). 21 | 22 | ## Dependencies 23 | 24 | - [AutoKeras](https://autokeras.com/) requires Python >= 3.5 . 25 | 26 | ## Installation 27 | 28 | Install the current released version of `{autokeras}` from 29 | [CRAN](https://cran.r-project.org/package=autokeras): 30 | 31 | ``` r 32 | install.packages("autokeras") 33 | ``` 34 | 35 | Or install the development version from GitHub: 36 | 37 | ``` r 38 | if (!require("remotes")) { 39 | install.packages("remotes") 40 | } 41 | remotes::install_github("r-tensorflow/autokeras") 42 | ``` 43 | 44 | Then, use the `install_autokeras()` function to install TensorFlow: 45 | 46 | ``` r 47 | library("autokeras") 48 | install_autokeras() 49 | ``` 50 | 51 | ## Docker 52 | 53 | `autokeras` R package has a configured Docker image. 54 | 55 | Steps to run it: 56 | 57 | From a bash console: 58 | 59 | ``` bash 60 | docker pull jcrodriguez1989/r-autokeras:1.0.0 61 | docker run -it jcrodriguez1989/r-autokeras:1.0.0 /bin/bash 62 | ``` 63 | 64 | To run the docker image, and share the current folder (in home machine) 65 | to the `/data` path (in the docker machine), then do: 66 | 67 | ``` bash 68 | docker run -it -v ${PWD}:/data jcrodriguez1989/r-autokeras:1.0.0 /bin/bash 69 | ls /data # once when the docker image is running 70 | ``` 71 | 72 | ## Examples 73 | 74 | ### CIFAR-10 dataset 75 | 76 | ``` r 77 | library("keras") 78 | 79 | # Get CIFAR-10 dataset, but not preprocessing needed 80 | cifar10 <- dataset_cifar10() 81 | c(x_train, y_train) %<-% cifar10$train 82 | c(x_test, y_test) %<-% cifar10$test 83 | ``` 84 | 85 | ``` r 86 | library("autokeras") 87 | 88 | # Create an image classifier, and train 10 different models 89 | clf <- model_image_classifier(max_trials = 10) %>% 90 | fit(x_train, y_train) 91 | ``` 92 | 93 | ``` r 94 | # And use it to evaluate, predict 95 | clf %>% evaluate(x_test, y_test) 96 | ``` 97 | 98 | ``` r 99 | clf %>% predict(x_test[1:10, , , ]) 100 | ``` 101 | 102 | ``` r 103 | # Get the best trained Keras model, to work with the keras R library 104 | (keras_model <- export_model(clf)) 105 | ``` 106 | 107 | ### IMDb dataset 108 | 109 | ``` r 110 | library("keras") 111 | 112 | # Get IMDb dataset 113 | imdb <- dataset_imdb(num_words = 1000) 114 | c(x_train, y_train) %<-% imdb$train 115 | c(x_test, y_test) %<-% imdb$test 116 | 117 | # AutoKeras procceses each text data point as a character vector, 118 | # i.e., x_train[[1]] " this film was just brilliant casting..", 119 | # so we need to transform the dataset. 120 | word_index <- dataset_imdb_word_index() 121 | word_index <- c( 122 | "", "", "", "", 123 | names(word_index)[order(unlist(word_index))] 124 | ) 125 | x_train <- lapply(x_train, function(x) { 126 | paste(word_index[x + 1], collapse = " ") 127 | }) 128 | x_test <- lapply(x_test, function(x) { 129 | paste(word_index[x + 1], collapse = " ") 130 | }) 131 | 132 | x_train <- matrix(unlist(x_train), ncol = 1) 133 | x_test <- matrix(unlist(x_test), ncol = 1) 134 | y_train <- array(unlist(y_train)) 135 | y_test <- array(unlist(y_test)) 136 | ``` 137 | 138 | ``` r 139 | library("autokeras") 140 | 141 | # Create a text classifier, and train 10 different models 142 | clf <- model_text_classifier(max_trials = 10) %>% 143 | fit(x_train, y_train) 144 | ``` 145 | 146 | ``` r 147 | # And use it to evaluate, predict 148 | clf %>% evaluate(x_test, y_test) 149 | ``` 150 | 151 | ``` r 152 | clf %>% predict(x_test[1:10]) 153 | ``` 154 | 155 | ``` r 156 | # Get the best trained Keras model, to work with the keras R library 157 | export_model(clf) 158 | ``` 159 | -------------------------------------------------------------------------------- /autokeras.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | 15 | AutoAppendNewline: Yes 16 | StripTrailingWhitespace: Yes 17 | 18 | BuildType: Package 19 | PackageUseDevtools: Yes 20 | PackageInstallArgs: --no-multiarch --with-keep.source 21 | PackageRoxygenize: rd,collate,namespace 22 | -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- 1 | comment: false 2 | 3 | coverage: 4 | status: 5 | project: 6 | default: 7 | target: auto 8 | threshold: 1% 9 | patch: 10 | default: 11 | target: auto 12 | threshold: 1% 13 | -------------------------------------------------------------------------------- /docker/Dockerfile: -------------------------------------------------------------------------------- 1 | # $ docker run -ti ubuntu:18.04 /bin/bash 2 | FROM ubuntu:18.04 3 | 4 | # install all python and R dependencies 5 | ENV DEBIAN_FRONTEND=noninteractive 6 | 7 | RUN apt update 8 | RUN apt --assume-yes install python3.6 python3-pip r-base 9 | RUN pip3 install --upgrade pip 10 | RUN hash -r pip 11 | RUN ln -s /usr/bin/python3.6 /usr/bin/python 12 | 13 | RUN R -e "\ 14 | options(repos = \ 15 | list(CRAN = 'http://mirror.las.iastate.edu/CRAN/')); \ 16 | install.packages('remotes'); \ 17 | install.packages('reticulate'); \ 18 | reticulate::install_miniconda(); \ 19 | remotes::install_github('r-tensorflow/autokeras'); \ 20 | autokeras::install_autokeras()" 21 | 22 | # create a working dir 23 | RUN mkdir /autokeras_files 24 | WORKDIR /autokeras_files 25 | 26 | # $ docker build . -t jcrodriguez1989/r-autokeras:1.0.0 27 | -------------------------------------------------------------------------------- /docs/bootstrap-toc.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/) 3 | * Copyright 2015 Aidan Feldman 4 | * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */ 5 | 6 | /* modified from https://github.com/twbs/bootstrap/blob/94b4076dd2efba9af71f0b18d4ee4b163aa9e0dd/docs/assets/css/src/docs.css#L548-L601 */ 7 | 8 | /* All levels of nav */ 9 | nav[data-toggle='toc'] .nav > li > a { 10 | display: block; 11 | padding: 4px 20px; 12 | font-size: 13px; 13 | font-weight: 500; 14 | color: #767676; 15 | } 16 | nav[data-toggle='toc'] .nav > li > a:hover, 17 | nav[data-toggle='toc'] .nav > li > a:focus { 18 | padding-left: 19px; 19 | color: #563d7c; 20 | text-decoration: none; 21 | background-color: transparent; 22 | border-left: 1px solid #563d7c; 23 | } 24 | nav[data-toggle='toc'] .nav > .active > a, 25 | nav[data-toggle='toc'] .nav > .active:hover > a, 26 | nav[data-toggle='toc'] .nav > .active:focus > a { 27 | padding-left: 18px; 28 | font-weight: bold; 29 | color: #563d7c; 30 | background-color: transparent; 31 | border-left: 2px solid #563d7c; 32 | } 33 | 34 | /* Nav: second level (shown on .active) */ 35 | nav[data-toggle='toc'] .nav .nav { 36 | display: none; /* Hide by default, but at >768px, show it */ 37 | padding-bottom: 10px; 38 | } 39 | nav[data-toggle='toc'] .nav .nav > li > a { 40 | padding-top: 1px; 41 | padding-bottom: 1px; 42 | padding-left: 30px; 43 | font-size: 12px; 44 | font-weight: normal; 45 | } 46 | nav[data-toggle='toc'] .nav .nav > li > a:hover, 47 | nav[data-toggle='toc'] .nav .nav > li > a:focus { 48 | padding-left: 29px; 49 | } 50 | nav[data-toggle='toc'] .nav .nav > .active > a, 51 | nav[data-toggle='toc'] .nav .nav > .active:hover > a, 52 | nav[data-toggle='toc'] .nav .nav > .active:focus > a { 53 | padding-left: 28px; 54 | font-weight: 500; 55 | } 56 | 57 | /* from https://github.com/twbs/bootstrap/blob/e38f066d8c203c3e032da0ff23cd2d6098ee2dd6/docs/assets/css/src/docs.css#L631-L634 */ 58 | nav[data-toggle='toc'] .nav > .active > ul { 59 | display: block; 60 | } 61 | -------------------------------------------------------------------------------- /docs/docsearch.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 3 | // register a handler to move the focus to the search bar 4 | // upon pressing shift + "/" (i.e. "?") 5 | $(document).on('keydown', function(e) { 6 | if (e.shiftKey && e.keyCode == 191) { 7 | e.preventDefault(); 8 | $("#search-input").focus(); 9 | } 10 | }); 11 | 12 | $(document).ready(function() { 13 | // do keyword highlighting 14 | /* modified from https://jsfiddle.net/julmot/bL6bb5oo/ */ 15 | var mark = function() { 16 | 17 | var referrer = document.URL ; 18 | var paramKey = "q" ; 19 | 20 | if (referrer.indexOf("?") !== -1) { 21 | var qs = referrer.substr(referrer.indexOf('?') + 1); 22 | var qs_noanchor = qs.split('#')[0]; 23 | var qsa = qs_noanchor.split('&'); 24 | var keyword = ""; 25 | 26 | for (var i = 0; i < qsa.length; i++) { 27 | var currentParam = qsa[i].split('='); 28 | 29 | if (currentParam.length !== 2) { 30 | continue; 31 | } 32 | 33 | if (currentParam[0] == paramKey) { 34 | keyword = decodeURIComponent(currentParam[1].replace(/\+/g, "%20")); 35 | } 36 | } 37 | 38 | if (keyword !== "") { 39 | $(".contents").unmark({ 40 | done: function() { 41 | $(".contents").mark(keyword); 42 | } 43 | }); 44 | } 45 | } 46 | }; 47 | 48 | mark(); 49 | }); 50 | }); 51 | 52 | /* Search term highlighting ------------------------------*/ 53 | 54 | function matchedWords(hit) { 55 | var words = []; 56 | 57 | var hierarchy = hit._highlightResult.hierarchy; 58 | // loop to fetch from lvl0, lvl1, etc. 59 | for (var idx in hierarchy) { 60 | words = words.concat(hierarchy[idx].matchedWords); 61 | } 62 | 63 | var content = hit._highlightResult.content; 64 | if (content) { 65 | words = words.concat(content.matchedWords); 66 | } 67 | 68 | // return unique words 69 | var words_uniq = [...new Set(words)]; 70 | return words_uniq; 71 | } 72 | 73 | function updateHitURL(hit) { 74 | 75 | var words = matchedWords(hit); 76 | var url = ""; 77 | 78 | if (hit.anchor) { 79 | url = hit.url_without_anchor + '?q=' + escape(words.join(" ")) + '#' + hit.anchor; 80 | } else { 81 | url = hit.url + '?q=' + escape(words.join(" ")); 82 | } 83 | 84 | return url; 85 | } 86 | -------------------------------------------------------------------------------- /docs/link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /docs/pkgdown.js: -------------------------------------------------------------------------------- 1 | /* http://gregfranko.com/blog/jquery-best-practices/ */ 2 | (function($) { 3 | $(function() { 4 | 5 | $('.navbar-fixed-top').headroom(); 6 | 7 | $('body').css('padding-top', $('.navbar').height() + 10); 8 | $(window).resize(function(){ 9 | $('body').css('padding-top', $('.navbar').height() + 10); 10 | }); 11 | 12 | $('[data-toggle="tooltip"]').tooltip(); 13 | 14 | var cur_path = paths(location.pathname); 15 | var links = $("#navbar ul li a"); 16 | var max_length = -1; 17 | var pos = -1; 18 | for (var i = 0; i < links.length; i++) { 19 | if (links[i].getAttribute("href") === "#") 20 | continue; 21 | // Ignore external links 22 | if (links[i].host !== location.host) 23 | continue; 24 | 25 | var nav_path = paths(links[i].pathname); 26 | 27 | var length = prefix_length(nav_path, cur_path); 28 | if (length > max_length) { 29 | max_length = length; 30 | pos = i; 31 | } 32 | } 33 | 34 | // Add class to parent
  • , and enclosing
  • if in dropdown 35 | if (pos >= 0) { 36 | var menu_anchor = $(links[pos]); 37 | menu_anchor.parent().addClass("active"); 38 | menu_anchor.closest("li.dropdown").addClass("active"); 39 | } 40 | }); 41 | 42 | function paths(pathname) { 43 | var pieces = pathname.split("/"); 44 | pieces.shift(); // always starts with / 45 | 46 | var end = pieces[pieces.length - 1]; 47 | if (end === "index.html" || end === "") 48 | pieces.pop(); 49 | return(pieces); 50 | } 51 | 52 | // Returns -1 if not found 53 | function prefix_length(needle, haystack) { 54 | if (needle.length > haystack.length) 55 | return(-1); 56 | 57 | // Special case for length-0 haystack, since for loop won't run 58 | if (haystack.length === 0) { 59 | return(needle.length === 0 ? 0 : -1); 60 | } 61 | 62 | for (var i = 0; i < haystack.length; i++) { 63 | if (needle[i] != haystack[i]) 64 | return(i); 65 | } 66 | 67 | return(haystack.length); 68 | } 69 | 70 | /* Clipboard --------------------------*/ 71 | 72 | function changeTooltipMessage(element, msg) { 73 | var tooltipOriginalTitle=element.getAttribute('data-original-title'); 74 | element.setAttribute('data-original-title', msg); 75 | $(element).tooltip('show'); 76 | element.setAttribute('data-original-title', tooltipOriginalTitle); 77 | } 78 | 79 | if(ClipboardJS.isSupported()) { 80 | $(document).ready(function() { 81 | var copyButton = ""; 82 | 83 | $(".examples, div.sourceCode").addClass("hasCopyButton"); 84 | 85 | // Insert copy buttons: 86 | $(copyButton).prependTo(".hasCopyButton"); 87 | 88 | // Initialize tooltips: 89 | $('.btn-copy-ex').tooltip({container: 'body'}); 90 | 91 | // Initialize clipboard: 92 | var clipboardBtnCopies = new ClipboardJS('[data-clipboard-copy]', { 93 | text: function(trigger) { 94 | return trigger.parentNode.textContent; 95 | } 96 | }); 97 | 98 | clipboardBtnCopies.on('success', function(e) { 99 | changeTooltipMessage(e.trigger, 'Copied!'); 100 | e.clearSelection(); 101 | }); 102 | 103 | clipboardBtnCopies.on('error', function() { 104 | changeTooltipMessage(e.trigger,'Press Ctrl+C or Command+C to copy'); 105 | }); 106 | }); 107 | } 108 | })(window.jQuery || window.$) 109 | -------------------------------------------------------------------------------- /docs/pkgdown.yml: -------------------------------------------------------------------------------- 1 | pandoc: 2.11.1.1 2 | pkgdown: 1.6.1 3 | pkgdown_sha: ~ 4 | articles: {} 5 | last_built: 2021-01-16T23:58Z 6 | 7 | -------------------------------------------------------------------------------- /docs/reference/Rplot001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/docs/reference/Rplot001.png -------------------------------------------------------------------------------- /docs/reference/image_classifier/oracle.json: -------------------------------------------------------------------------------- 1 | {"ongoing_trials": {"tuner0": "2da69470fd31b602cff358fcfd16c1ab"}, "hyperparameters": {"space": [], "values": {}}} -------------------------------------------------------------------------------- /docs/reference/image_classifier/trial_2da69470fd31b602cff358fcfd16c1ab/trial.json: -------------------------------------------------------------------------------- 1 | {"trial_id": "2da69470fd31b602cff358fcfd16c1ab", "hyperparameters": {"space": [], "values": {"image_block_1/block_type": "vanilla", "image_block_1/normalize": true, "image_block_1/augment": false, "image_block_1_vanilla/kernel_size": 3, "image_block_1_vanilla/num_blocks": 1, "image_block_1_vanilla/separable": false, "image_block_1_vanilla/dropout_rate": 0.25, "image_block_1_vanilla/filters_0_1": 32, "image_block_1_vanilla/filters_0_2": 64, "spatial_reduction_1/reduction_type": "flatten", "dense_block_1/num_layers": 1, "dense_block_1/use_batchnorm": false, "dense_block_1/dropout_rate": 0, "dense_block_1/units_0": 128, "classification_head_1/dropout_rate": 0.5, "optimizer": "adam"}}, "metrics": {"metrics": {}}, "score": null, "best_step": null, "status": "RUNNING"} -------------------------------------------------------------------------------- /man/AutokerasModel-class.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/autokeras_model_class.R 3 | \docType{class} 4 | \name{AutokerasModel-class} 5 | \alias{AutokerasModel-class} 6 | \title{Autokeras Model Class Representation} 7 | \description{ 8 | Autokeras Model Class Representation 9 | } 10 | -------------------------------------------------------------------------------- /man/autokeras-package.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/package.R 3 | \docType{package} 4 | \name{autokeras-package} 5 | \alias{autokeras} 6 | \alias{autokeras-package} 7 | \title{R Interface to AutoKeras} 8 | \description{ 9 | [AutoKeras](https://autokeras.com/) is an open source software library for 10 | automated machine learning (AutoML). It is developed by 11 | [DATA Lab](https://people.engr.tamu.edu/xiahu/index.html) at Texas A&M 12 | University and community contributors. The ultimate goal of AutoML is to 13 | provide easily accessible deep learning tools to domain experts with limited 14 | data science or machine learning background. AutoKeras provides functions 15 | to automatically search for architecture and hyperparameters of deep 16 | learning models. 17 | } 18 | \seealso{ 19 | Useful links: 20 | \itemize{ 21 | \item \url{https://github.com/r-tensorflow/autokeras} 22 | \item Report bugs at \url{https://github.com/r-tensorflow/autokeras/issues} 23 | } 24 | 25 | } 26 | \author{ 27 | \strong{Maintainer}: Juan Cruz Rodriguez \email{jcrodriguez@unc.edu.ar} 28 | 29 | Other contributors: 30 | \itemize{ 31 | \item Data Analytics at Texas A&M (DATA) Lab [copyright holder] 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /man/evaluate.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/evaluate.R 3 | \name{evaluate} 4 | \alias{evaluate} 5 | \alias{evaluate.AutokerasModel} 6 | \title{Evaluate a Model} 7 | \usage{ 8 | \method{evaluate}{AutokerasModel}(object, x_test, y_test = NULL, batch_size = 32, ...) 9 | } 10 | \arguments{ 11 | \item{object}{: A trained AutokerasModel instance.} 12 | 13 | \item{x_test}{: Any allowed types according to the input node. Testing data. 14 | Check corresponding AutokerasModel help to note how it should be provided.} 15 | 16 | \item{y_test}{: Any allowed types according to the input node. Testing data. 17 | Check corresponding AutokerasModel help to note how it should be provided. 18 | Defaults to `NULL`.} 19 | 20 | \item{batch_size}{: numeric. Defaults to `32`.} 21 | 22 | \item{...}{: Unused.} 23 | } 24 | \value{ 25 | numeric test loss (if the model has a single output and no metrics) 26 | or list of scalars (if the model has multiple outputs and/or metrics). The 27 | attribute model$metrics_names will give you the display labels for the 28 | scalar outputs. 29 | } 30 | \description{ 31 | Evaluate the best model for the given data. 32 | } 33 | \examples{ 34 | \dontrun{ 35 | library("keras") 36 | 37 | # use the MNIST dataset as an example 38 | mnist <- dataset_mnist() 39 | c(x_train, y_train) \%<-\% mnist$train 40 | c(x_test, y_test) \%<-\% mnist$test 41 | 42 | library("autokeras") 43 | 44 | # Initialize the image classifier 45 | clf <- model_image_classifier(max_trials = 10) \%>\% # It tries 10 different models 46 | fit(x_train, y_train) # Feed the image classifier with training data 47 | 48 | # Predict with the best model 49 | (predicted_y <- clf \%>\% predict(x_test)) 50 | 51 | # Evaluate the best model with testing data 52 | clf \%>\% evaluate(x_test, y_test) 53 | 54 | # Get the best trained Keras model, to work with the keras R library 55 | export_model(clf) 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /man/export_model.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/export_model.R 3 | \name{export_model} 4 | \alias{export_model} 5 | \title{Export Model} 6 | \usage{ 7 | export_model(autokeras_model) 8 | } 9 | \arguments{ 10 | \item{autokeras_model}{: A trained AutokerasModel instance.} 11 | } 12 | \value{ 13 | keras.Model instance. The best model found during the search, loaded 14 | with trained weights. 15 | } 16 | \description{ 17 | Export the best trained Keras Model.\cr 18 | Actually, exporting the model as a Keras model is not working as expected, 19 | check out the bug https://github.com/keras-team/autokeras/issues/929 . 20 | } 21 | \examples{ 22 | \dontrun{ 23 | library("keras") 24 | 25 | # use the MNIST dataset as an example 26 | mnist <- dataset_mnist() 27 | c(x_train, y_train) \%<-\% mnist$train 28 | c(x_test, y_test) \%<-\% mnist$test 29 | 30 | library("autokeras") 31 | 32 | # Initialize the image classifier 33 | clf <- model_image_classifier(max_trials = 10) \%>\% # It tries 10 different models 34 | fit(x_train, y_train) # Feed the image classifier with training data 35 | 36 | # Predict with the best model 37 | (predicted_y <- clf \%>\% predict(x_test)) 38 | 39 | # Evaluate the best model with testing data 40 | clf \%>\% evaluate(x_test, y_test) 41 | 42 | # Get the best trained Keras model, to work with the keras R library 43 | export_model(clf) 44 | } 45 | 46 | } 47 | -------------------------------------------------------------------------------- /man/fit.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/fit.R 3 | \name{fit} 4 | \alias{fit} 5 | \alias{fit.AutokerasModel} 6 | \title{Search for the Best Model and Hyperparameters} 7 | \usage{ 8 | \method{fit}{AutokerasModel}( 9 | object, 10 | x = NULL, 11 | y = NULL, 12 | epochs = 1000, 13 | callbacks = NULL, 14 | validation_split = 0.2, 15 | validation_data = NULL, 16 | ... 17 | ) 18 | } 19 | \arguments{ 20 | \item{object}{: An AutokerasModel instance.} 21 | 22 | \item{x}{: Training data x. Check corresponding AutokerasModel help to note 23 | how it should be provided.} 24 | 25 | \item{y}{: Training data y. Check corresponding AutokerasModel help to note 26 | how it should be provided.} 27 | 28 | \item{epochs}{: numeric. The number of epochs to train each model during the 29 | search. If unspecified, by default we train for a maximum of `1000` epochs, 30 | but we stop training if the validation loss stops improving for 10 epochs 31 | (unless you specified an EarlyStopping callback as part of the `callbacks` 32 | argument, in which case the EarlyStopping callback you specified will 33 | determine early stopping).} 34 | 35 | \item{callbacks}{: list of Keras callbacks to apply during training and 36 | validation.} 37 | 38 | \item{validation_split}{: numeric between 0 and 1. Defaults to `0.2`. 39 | Fraction of the training data to be used as validation data. The model will 40 | set apart this fraction of the training data, will not train on it, and 41 | will evaluate the loss and any model metrics on this data at the end of 42 | each epoch. The validation data is selected from the last samples in the 43 | `x` and `y` data provided, before shuffling. This argument is not supported 44 | when `x` is a dataset. The best model found would be fit on the entire 45 | dataset including the validation data.} 46 | 47 | \item{validation_data}{: Data on which to evaluate the loss and any model 48 | metrics at the end of each epoch. The model will not be trained on this 49 | data. `validation_data` will override `validation_split`. The type of the 50 | validation data should be the same as the training data. The best model 51 | found would be fit on the training dataset without the validation data.} 52 | 53 | \item{...}{: Unused.} 54 | } 55 | \value{ 56 | A trained AutokerasModel. 57 | } 58 | \description{ 59 | It will search for the best model and hyperparameters based on the 60 | performances on validation data. 61 | } 62 | \examples{ 63 | \dontrun{ 64 | library("keras") 65 | 66 | # use the MNIST dataset as an example 67 | mnist <- dataset_mnist() 68 | c(x_train, y_train) \%<-\% mnist$train 69 | c(x_test, y_test) \%<-\% mnist$test 70 | 71 | library("autokeras") 72 | 73 | # Initialize the image classifier 74 | clf <- model_image_classifier(max_trials = 10) \%>\% # It tries 10 different models 75 | fit(x_train, y_train) # Feed the image classifier with training data 76 | 77 | # If you want to use own valitadion data do: 78 | clf <- model_image_classifier(max_trials = 10) \%>\% 79 | fit( 80 | x_train, 81 | y_train, 82 | validation_data = list(x_test, y_test) 83 | ) 84 | 85 | # Predict with the best model 86 | (predicted_y <- clf \%>\% predict(x_test)) 87 | 88 | # Evaluate the best model with testing data 89 | clf \%>\% evaluate(x_test, y_test) 90 | 91 | # Get the best trained Keras model, to work with the keras R library 92 | export_model(clf) 93 | } 94 | 95 | } 96 | -------------------------------------------------------------------------------- /man/model_image_classifier.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/model_image_classifier.R 3 | \name{model_image_classifier} 4 | \alias{model_image_classifier} 5 | \title{AutoKeras Image Classifier Model} 6 | \usage{ 7 | model_image_classifier( 8 | num_classes = NULL, 9 | multi_label = FALSE, 10 | loss = NULL, 11 | metrics = list("accuracy"), 12 | name = "image_classifier", 13 | max_trials = 100, 14 | directory = tempdir(), 15 | objective = "val_loss", 16 | overwrite = TRUE, 17 | seed = runif(1, 0, 1e+07) 18 | ) 19 | } 20 | \arguments{ 21 | \item{num_classes}{: numeric. Defaults to `NULL`. If `NULL`, it will infer 22 | from the data.} 23 | 24 | \item{multi_label}{: logical. Defaults to `FALSE`.} 25 | 26 | \item{loss}{: A Keras loss function. Defaults to use `binary_crossentropy` or 27 | `categorical_crossentropy` based on the number of classes.} 28 | 29 | \item{metrics}{: A list of Keras metrics. Defaults to use `accuracy`.} 30 | 31 | \item{name}{: character. The name of the AutoModel. Defaults to 32 | "image_classifier".} 33 | 34 | \item{max_trials}{: numeric. The maximum number of different Keras Models to 35 | try. The search may finish before reaching the `max_trials`. Defaults to 36 | `100`.} 37 | 38 | \item{directory}{: character. The path to a directory for storing the search 39 | outputs. Defaults to `tempdir()`, which would create a folder with the name 40 | of the AutoModel in the current directory.} 41 | 42 | \item{objective}{: character. Name of model metric to minimize or maximize, 43 | e.g. "val_accuracy". Defaults to "val_loss".} 44 | 45 | \item{overwrite}{: logical. Defaults to `TRUE`. If `FALSE`, reloads an 46 | existing project of the same name if one is found. Otherwise, overwrites 47 | the project.} 48 | 49 | \item{seed}{: numeric. Random seed. Defaults to `runif(1, 0, 10e6)`.} 50 | } 51 | \value{ 52 | A non-trained image classifier AutokerasModel. 53 | } 54 | \description{ 55 | AutoKeras image classification class.\cr 56 | It is used for image classification. It searches convolutional neural 57 | network architectures for the best configuration for the image dataset. 58 | To `fit`, `evaluate` or `predict`, format inputs as: 59 | \itemize{ 60 | \item{ 61 | x : array. The shape of the data should be 3 or 4 dimensional, the last 62 | dimension of which should be channel dimension. 63 | } 64 | \item{ 65 | y : array. It can be raw labels, one-hot encoded if more than two classes, or 66 | binary encoded for binary classification. 67 | } 68 | } 69 | } 70 | \details{ 71 | Important: The object returned by this function behaves like an R6 object, 72 | i.e., within function calls with this object as parameter, it is most likely 73 | that the object will be modified. Therefore it is not necessary to assign 74 | the result of the functions to the same object. 75 | } 76 | \examples{ 77 | \dontrun{ 78 | library("keras") 79 | 80 | # use the MNIST dataset as an example 81 | mnist <- dataset_mnist() 82 | c(x_train, y_train) \%<-\% mnist$train 83 | c(x_test, y_test) \%<-\% mnist$test 84 | 85 | library("autokeras") 86 | 87 | # Initialize the image classifier 88 | clf <- model_image_classifier(max_trials = 10) \%>\% # It tries 10 different models 89 | fit(x_train, y_train) # Feed the image classifier with training data 90 | 91 | # If you want to use own valitadion data do: 92 | clf <- model_image_classifier(max_trials = 10) \%>\% 93 | fit( 94 | x_train, 95 | y_train, 96 | validation_data = list(x_test, y_test) 97 | ) 98 | 99 | # Predict with the best model 100 | (predicted_y <- clf \%>\% predict(x_test)) 101 | 102 | # Evaluate the best model with testing data 103 | clf \%>\% evaluate(x_test, y_test) 104 | 105 | # Get the best trained Keras model, to work with the keras R library 106 | export_model(clf) 107 | } 108 | 109 | } 110 | -------------------------------------------------------------------------------- /man/model_image_regressor.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/model_image_regressor.R 3 | \name{model_image_regressor} 4 | \alias{model_image_regressor} 5 | \title{AutoKeras Image Regressor Model} 6 | \usage{ 7 | model_image_regressor( 8 | output_dim = NULL, 9 | loss = "mean_squared_error", 10 | metrics = NULL, 11 | name = "image_regressor", 12 | max_trials = 100, 13 | directory = tempdir(), 14 | objective = "val_loss", 15 | overwrite = TRUE, 16 | seed = runif(1, 0, 1e+07) 17 | ) 18 | } 19 | \arguments{ 20 | \item{output_dim}{: numeric. The number of output dimensions. Defaults to 21 | `NULL`. If `NULL`, it will infer from the data.} 22 | 23 | \item{loss}{: A Keras loss function. Defaults to use "mean_squared_error".} 24 | 25 | \item{metrics}{: A list of Keras metrics. Defaults to use 26 | "mean_squared_error".} 27 | 28 | \item{name}{: character. The name of the AutoModel. Defaults to 29 | "image_regressor".} 30 | 31 | \item{max_trials}{: numeric. The maximum number of different Keras Models to 32 | try. The search may finish before reaching the `max_trials`. Defaults to 33 | `100`.} 34 | 35 | \item{directory}{: character. The path to a directory for storing the search 36 | outputs. Defaults to `tempdir()`, which would create a folder with the name 37 | of the AutoModel in the current directory.} 38 | 39 | \item{objective}{: character. Name of model metric to minimize or maximize, 40 | e.g. "val_accuracy". Defaults to "val_loss".} 41 | 42 | \item{overwrite}{: logical. Defaults to `TRUE`. If `FALSE`, reloads an 43 | existing project of the same name if one is found. Otherwise, overwrites 44 | the project.} 45 | 46 | \item{seed}{: numeric. Random seed. Defaults to `runif(1, 0, 10e6)`.} 47 | } 48 | \value{ 49 | A non-trained image regressor AutokerasModel. 50 | } 51 | \description{ 52 | AutoKeras image regression class.\cr 53 | It is used for image regression. It searches convolutional neural network 54 | architectures for the best configuration for the image dataset. 55 | To `fit`, `evaluate` or `predict`, format inputs as: 56 | \itemize{ 57 | \item{ 58 | x : array. The shape of the data should be 3 or 4 dimensional, the last 59 | dimension of which should be channel dimension. 60 | } 61 | \item{ 62 | y : array. The targets passing to the head would have to be array or 63 | data.frame. It can be single-column or multi-column. The values should all 64 | be numerical. 65 | } 66 | } 67 | } 68 | \details{ 69 | Important: The object returned by this function behaves like an R6 object, 70 | i.e., within function calls with this object as parameter, it is most likely 71 | that the object will be modified. Therefore it is not necessary to assign 72 | the result of the functions to the same object. 73 | } 74 | \examples{ 75 | \dontrun{ 76 | library("keras") 77 | 78 | # use the MNIST dataset as an example 79 | mnist <- dataset_mnist() 80 | c(x_train, y_train) \%<-\% mnist$train 81 | c(x_test, y_test) \%<-\% mnist$test 82 | 83 | library("autokeras") 84 | 85 | # Initialize the image regressor 86 | reg <- model_image_regressor(max_trials = 10) \%>\% # It tries 10 different models 87 | fit(x_train, y_train) # Feed the image regressor with training data 88 | 89 | # If you want to use own valitadion data do: 90 | reg <- model_image_regressor(max_trials = 10) \%>\% 91 | fit( 92 | x_train, 93 | y_train, 94 | validation_data = list(x_test, y_test) 95 | ) 96 | 97 | # Predict with the best model 98 | (predicted_y <- reg \%>\% predict(x_test)) 99 | 100 | # Evaluate the best model with testing data 101 | reg \%>\% evaluate(x_test, y_test) 102 | 103 | # Get the best trained Keras model, to work with the keras R library 104 | export_model(reg) 105 | } 106 | 107 | } 108 | -------------------------------------------------------------------------------- /man/model_text_classifier.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/model_text_classifier.R 3 | \name{model_text_classifier} 4 | \alias{model_text_classifier} 5 | \title{AutoKeras Text Classifier Model} 6 | \usage{ 7 | model_text_classifier( 8 | num_classes = NULL, 9 | multi_label = FALSE, 10 | loss = NULL, 11 | metrics = NULL, 12 | name = "text_classifier", 13 | max_trials = 100, 14 | directory = tempdir(), 15 | objective = "val_loss", 16 | overwrite = TRUE, 17 | seed = runif(1, 0, 1e+07) 18 | ) 19 | } 20 | \arguments{ 21 | \item{num_classes}{: numeric. Defaults to `NULL`. If `NULL`, it will infer 22 | from the data.} 23 | 24 | \item{multi_label}{: logical. Defaults to `FALSE`.} 25 | 26 | \item{loss}{: A Keras loss function. Defaults to use "binary_crossentropy" or 27 | "categorical_crossentropy" based on the number of classes.} 28 | 29 | \item{metrics}{: A list of Keras metrics. Defaults to use "accuracy".} 30 | 31 | \item{name}{: character. The name of the AutoModel. Defaults to 32 | "text_classifier".} 33 | 34 | \item{max_trials}{: numeric. The maximum number of different Keras Models to 35 | try. The search may finish before reaching the `max_trials`. Defaults to 36 | `100`.} 37 | 38 | \item{directory}{: character. The path to a directory for storing the search 39 | outputs. Defaults to `tempdir()`, which would create a folder with the name 40 | of the AutoModel in the current directory.} 41 | 42 | \item{objective}{: character. Name of model metric to minimize or maximize, 43 | e.g. "val_accuracy". Defaults to "val_loss".} 44 | 45 | \item{overwrite}{: logical. Defaults to `TRUE`. If `FALSE`, reloads an 46 | existing project of the same name if one is found. Otherwise, overwrites 47 | the project.} 48 | 49 | \item{seed}{: numeric. Random seed. Defaults to `runif(1, 0, 10e6)`.} 50 | } 51 | \value{ 52 | A non-trained text classifier AutokerasModel. 53 | } 54 | \description{ 55 | AutoKeras text classification class.\cr 56 | To `fit`, `evaluate` or `predict`, format inputs as: 57 | \itemize{ 58 | \item{ 59 | x : array. The input data should be array. The data should be one 60 | dimensional. Each element in the data should be a string which is a full 61 | sentence. 62 | } 63 | \item{ 64 | y : array. It can be raw labels, one-hot encoded if more than two classes, or 65 | binary encoded for binary classification. 66 | } 67 | } 68 | } 69 | \details{ 70 | Important: The object returned by this function behaves like an R6 object, 71 | i.e., within function calls with this object as parameter, it is most likely 72 | that the object will be modified. Therefore it is not necessary to assign 73 | the result of the functions to the same object. 74 | } 75 | \examples{ 76 | \dontrun{ 77 | library("keras") 78 | 79 | # Get IMDb dataset 80 | imdb <- dataset_imdb(num_words = 1000) 81 | c(x_train, y_train) \%<-\% imdb$train 82 | c(x_test, y_test) \%<-\% imdb$test 83 | 84 | # AutoKeras procceses each text data point as a character vector, 85 | # i.e., x_train[[1]] " this film was just brilliant casting..", 86 | # so we need to transform the dataset. 87 | word_index <- dataset_imdb_word_index() 88 | word_index <- c( 89 | "", "", "", "", 90 | names(word_index)[order(unlist(word_index))] 91 | ) 92 | x_train <- lapply(x_train, function(x) { 93 | paste(word_index[x + 1], collapse = " ") 94 | }) 95 | x_test <- lapply(x_test, function(x) { 96 | paste(word_index[x + 1], collapse = " ") 97 | }) 98 | 99 | x_train <- matrix(unlist(x_train), ncol = 1) 100 | x_test <- matrix(unlist(x_test), ncol = 1) 101 | y_train <- array(unlist(y_train)) 102 | y_test <- array(unlist(y_test)) 103 | 104 | library("autokeras") 105 | 106 | # Initialize the text classifier 107 | clf <- model_text_classifier(max_trials = 10) \%>\% # It tries 10 different models 108 | fit(x_train, y_train) # Feed the text classifier with training data 109 | 110 | # If you want to use own valitadion data do: 111 | clf <- model_text_classifier(max_trials = 10) \%>\% 112 | fit( 113 | x_train, 114 | y_train, 115 | validation_data = list(x_test, y_test) 116 | ) 117 | 118 | # Predict with the best model 119 | (predicted_y <- clf \%>\% predict(x_test)) 120 | 121 | # Evaluate the best model with testing data 122 | clf \%>\% evaluate(x_test, y_test) 123 | 124 | # Get the best trained Keras model, to work with the keras R library 125 | export_model(clf) 126 | } 127 | 128 | } 129 | -------------------------------------------------------------------------------- /man/model_text_regressor.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/model_text_regressor.R 3 | \name{model_text_regressor} 4 | \alias{model_text_regressor} 5 | \title{AutoKeras Text Regressor Model} 6 | \usage{ 7 | model_text_regressor( 8 | output_dim = NULL, 9 | loss = "mean_squared_error", 10 | metrics = NULL, 11 | name = "text_regressor", 12 | max_trials = 100, 13 | directory = tempdir(), 14 | objective = "val_loss", 15 | overwrite = TRUE, 16 | seed = runif(1, 0, 1e+07) 17 | ) 18 | } 19 | \arguments{ 20 | \item{output_dim}{: numeric. The number of output dimensions. Defaults to 21 | `NULL`. If `NULL`, it will infer from the data.} 22 | 23 | \item{loss}{: A Keras loss function. Defaults to use "mean_squared_error".} 24 | 25 | \item{metrics}{: A list of Keras metrics. Defaults to use 26 | "mean_squared_error".} 27 | 28 | \item{name}{: character. The name of the AutoModel. Defaults to 29 | "text_regressor".} 30 | 31 | \item{max_trials}{: numeric. The maximum number of different Keras Models to 32 | try. The search may finish before reaching the `max_trials`. Defaults to 33 | `100`.} 34 | 35 | \item{directory}{: character. The path to a directory for storing the search 36 | outputs. Defaults to `tempdir()`, which would create a folder with the name 37 | of the AutoModel in the current directory.} 38 | 39 | \item{objective}{: character. Name of model metric to minimize or maximize, 40 | e.g. "val_accuracy". Defaults to "val_loss".} 41 | 42 | \item{overwrite}{: logical. Defaults to `TRUE`. If `FALSE`, reloads an 43 | existing project of the same name if one is found. Otherwise, overwrites 44 | the project.} 45 | 46 | \item{seed}{: numeric. Random seed. Defaults to `runif(1, 0, 10e6)`.} 47 | } 48 | \value{ 49 | A non-trained text regressor AutokerasModel. 50 | } 51 | \description{ 52 | AutoKeras text regression class.\cr 53 | To `fit`, `evaluate` or `predict`, format inputs as: 54 | \itemize{ 55 | \item{ 56 | x : array. The input data should be array. The data should be one 57 | dimensional. Each element in the data should be a string which is a full 58 | sentence. 59 | } 60 | \item{ 61 | y : array. The targets passing to the head would have to be array or 62 | data.frame. It can be single-column or multi-column. The values should all 63 | be numerical. 64 | } 65 | } 66 | } 67 | \details{ 68 | Important: The object returned by this function behaves like an R6 object, 69 | i.e., within function calls with this object as parameter, it is most likely 70 | that the object will be modified. Therefore it is not necessary to assign 71 | the result of the functions to the same object. 72 | } 73 | \examples{ 74 | \dontrun{ 75 | library("keras") 76 | 77 | # Get IMDb dataset 78 | imdb <- dataset_imdb(num_words = 1000) 79 | c(x_train, y_train) \%<-\% imdb$train 80 | c(x_test, y_test) \%<-\% imdb$test 81 | 82 | # AutoKeras procceses each text data point as a character vector, 83 | # i.e., x_train[[1]] " this film was just brilliant casting..", 84 | # so we need to transform the dataset. 85 | word_index <- dataset_imdb_word_index() 86 | word_index <- c( 87 | "", "", "", "", 88 | names(word_index)[order(unlist(word_index))] 89 | ) 90 | x_train <- lapply(x_train, function(x) { 91 | paste(word_index[x + 1], collapse = " ") 92 | }) 93 | x_test <- lapply(x_test, function(x) { 94 | paste(word_index[x + 1], collapse = " ") 95 | }) 96 | 97 | x_train <- matrix(unlist(x_train), ncol = 1) 98 | x_test <- matrix(unlist(x_test), ncol = 1) 99 | y_train <- array(unlist(y_train)) 100 | y_test <- array(unlist(y_test)) 101 | 102 | library("autokeras") 103 | 104 | # Initialize the text regressor 105 | reg <- model_text_regressor(max_trials = 10) \%>\% # It tries 10 different models 106 | fit(x_train, y_train) # Feed the text regressor with training data 107 | 108 | # If you want to use own valitadion data do: 109 | reg <- model_text_regressor(max_trials = 10) \%>\% 110 | fit( 111 | x_train, 112 | y_train, 113 | validation_data = list(x_test, y_test) 114 | ) 115 | 116 | # Predict with the best model 117 | (predicted_y <- reg \%>\% predict(x_test)) 118 | 119 | # Evaluate the best model with testing data 120 | reg \%>\% evaluate(x_test, y_test) 121 | 122 | # Get the best trained Keras model, to work with the keras R library 123 | export_model(reg) 124 | } 125 | 126 | } 127 | -------------------------------------------------------------------------------- /man/predict.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/predict.R 3 | \name{predict} 4 | \alias{predict} 5 | \alias{predict.AutokerasModel} 6 | \title{Model Predictions} 7 | \usage{ 8 | \method{predict}{AutokerasModel}(object, x, batch_size = 32, ...) 9 | } 10 | \arguments{ 11 | \item{object}{: A trained AutokerasModel instance.} 12 | 13 | \item{x}{: Any allowed types according to the input node. Testing data. Check 14 | corresponding AutokerasModel help to note how it should be provided.} 15 | 16 | \item{batch_size}{: numeric. Defaults to `32`.} 17 | 18 | \item{...}{: Unused.} 19 | } 20 | \value{ 21 | A one-column matrix with the predicted values as rows. 22 | } 23 | \description{ 24 | Predict the output for a given testing data. 25 | } 26 | \examples{ 27 | \dontrun{ 28 | library("keras") 29 | 30 | # use the MNIST dataset as an example 31 | mnist <- dataset_mnist() 32 | c(x_train, y_train) \%<-\% mnist$train 33 | c(x_test, y_test) \%<-\% mnist$test 34 | 35 | library("autokeras") 36 | 37 | # Initialize the image classifier 38 | clf <- model_image_classifier(max_trials = 10) \%>\% # It tries 10 different models 39 | fit(x_train, y_train) # Feed the image classifier with training data 40 | 41 | # Predict with the best model 42 | (predicted_y <- clf \%>\% predict(x_test)) 43 | 44 | # Evaluate the best model with testing data 45 | clf \%>\% evaluate(x_test, y_test) 46 | 47 | # Get the best trained Keras model, to work with the keras R library 48 | export_model(clf) 49 | } 50 | 51 | } 52 | -------------------------------------------------------------------------------- /publications/LatinR2019/Abstract/LatinR2019.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Auto-Keras: An R easily accessible deep learning library" 3 | author: 4 | - name: Juan Cruz Rodriguez 5 | email: jcrodriguez@unc.edu.ar 6 | affiliation: FAMAF - UNC 7 | footnote: Corresponding Author 8 | - name: Javier Luraschi 9 | email: javier@rstudio.com 10 | affiliation: RStudio 11 | address: 12 | - code: FAMAF - UNC 13 | address: FAMAF, Universidad Nacional de Córdoba, Argentina 14 | - code: RStudio 15 | address: RStudio 16 | 17 | journal: "Latin American Conference about the Use of R in Research + Development" 18 | date: "`r Sys.Date()`" 19 | keywords: AutoDL, AutoML, Machine Learning, Artificial Intelligence 20 | bibliography: mybibfile.bib 21 | output: rticles::elsevier_article 22 | --- 23 | 24 | In the past few years, artificial intelligence (AI) has been a subject of intense media hype. Machine learning, deep learning, and AI come up in countless articles, often outside of technology-minded publications [@chollet2017deep]. Transiting the age of data, it results fundamentally for any researcher with large amounts of information, to consider the application of deep learning models. 25 | 26 | With a brief search on the web, dozens of texts are found where it is suggested to apply one or another deep learning model. However, tasks such as featurization, hyperparameters tunning, or network design, by no means, are easy for people without a rich computer science background. In this context, research work began to emerge in the area of what is known as Neural Architecture Search (NAS) [@zoph2016neural; @jin2018efficient]. The main goal of NAS algorithms is to, given a specific dataset, search for the most optimal neural network to perform a certain task on that dataset. In this sense, NAS algorithms allow the user to not have to worry about any task related to Data Science engineering. In other words, given a tagged dataset, and a task, e.g., Image Regression, Text Classification, among others, the NAS algorithm will train several high-performance deep learning models and return the one that outperforms the rest. 27 | 28 | Several NAS algorithms were developed on different platforms, or as libraries of certain programming languages [@zoph2016neural; @jin2018efficient]. However, for a language that brings together experts from such diverse disciplines as is the R programming language, there is no NAS tool to this day. In this paper, we present the Auto-Keras R package, an interface from R to the Auto-Keras Python library [@jin2018efficient]. Thanks to the use of Auto-Keras, R programmers with few lines of code will be able to train several deep learning models for their data, get the best model and evaluate it. 29 | 30 | For example, with the Auto-Keras R library, to train several deep learning models for the public MNIST dataset, and get the best-trained model, it results enough to run: 31 | 32 | ```{r eval=FALSE} 33 | library("keras") 34 | mnist <- dataset_mnist() # load mnist dataset 35 | c(x_train, y_train) %<-% mnist$train # get train 36 | c(x_test, y_test) %<-% mnist$test # and test data 37 | 38 | library("autokeras") 39 | # train an Image Classifier for 12 hours 40 | clf <- model_image_classifier(verbose = TRUE) %>% 41 | fit(x_train, y_train, time_limit = 12 * 60 * 60) 42 | 43 | # and get the best-trained model 44 | clf %>% final_fit(x_train, y_train, x_test, y_test, retrain = TRUE) 45 | ``` 46 | 47 | In the present work, Auto-Keras was evaluated using the MNIST and CIFAR-10 public datasets. For MNIST, after training for 12 hours, Auto-Keras tested 15 models and the best-trained model, obtains, for the test data, an accuracy value of 0.99. For the CIFAR-10 dataset, after training for 24 hours, it trained five models and the returned one got an accuracy value of 0.94. 48 | 49 | In this work, the Auto-Keras R package was presented. This library allows, with almost no deep learning knowledge, to train models and get the one that returns the best results for the desired task. Very promising results were obtained using Auto-Keras for the two datasets evaluated. Auto-Keras is an open-source R package and is freely available in [https://github.com/jcrodriguez1989/autokeras/](https://github.com/jcrodriguez1989/autokeras/). 50 | 51 | Although the Python Auto-Keras library is currently in a pre-release version and has few types of training tasks developed, it was recently added to the keras-team working group. This leads to an imminent advancement of this library. 52 | 53 | References {#references .unnumbered} 54 | ========== 55 | -------------------------------------------------------------------------------- /publications/LatinR2019/Abstract/LatinR2019.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Abstract/LatinR2019.pdf -------------------------------------------------------------------------------- /publications/LatinR2019/Abstract/README.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Auto-Keras abstract for LatinR2019 conference" 3 | output: github_document 4 | --- 5 | 6 | Files for the Auto-Keras abstract for [LatinR2019 conference](https://latin-r.com/). 7 | This work was selected for Oral Presentation. 8 | 9 | Requires package `rticles` in order to Knit abstract. 10 | -------------------------------------------------------------------------------- /publications/LatinR2019/Abstract/README.md: -------------------------------------------------------------------------------- 1 | Auto-Keras abstract for LatinR2019 conference 2 | ================ 3 | 4 | Files for the Auto-Keras abstract for [LatinR2019 5 | conference](https://latin-r.com/). This work was selected for Oral 6 | Presentation. 7 | 8 | Requires package `rticles` in order to Knit abstract. 9 | -------------------------------------------------------------------------------- /publications/LatinR2019/Abstract/mybibfile.bib: -------------------------------------------------------------------------------- 1 | @article{chollet2017deep, 2 | title={Deep Learning with R. Manning Publications, Manning Early Access Program}, 3 | author={Chollet, F and Allaire, JJ}, 4 | year={2017} 5 | } 6 | 7 | @article{zoph2016neural, 8 | title={Neural architecture search with reinforcement learning}, 9 | author={Zoph, Barret and Le, Quoc V}, 10 | journal={arXiv preprint arXiv:1611.01578}, 11 | year={2016} 12 | } 13 | 14 | @online{jin2018efficient, 15 | author = {Haifeng Jin and Qingquan Song and Xia Hu}, 16 | title = {Auto-Keras: An Efficient Neural Architecture Search System}, 17 | date = {2018-06-27}, 18 | year = {2018}, 19 | eprintclass = {cs.LG}, 20 | eprinttype = {arXiv}, 21 | eprint = {cs.LG/1806.10282}, 22 | } 23 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/01_get_data.R: -------------------------------------------------------------------------------- 1 | library("rvest") 2 | 3 | if (Sys.info()[["user"]] == "jcrodriguez") { 4 | setwd("~/mytmp/emoji_ds/") 5 | } 6 | 7 | emojipedia_url <- "https://emojipedia.org/" 8 | 9 | ## download uncategorized emojis 10 | 11 | uncateg_url <- paste0(emojipedia_url, "unicode-12.0") 12 | uncateg_emos <- read_html(uncateg_url) %>% 13 | html_node(".content") %>% 14 | html_children() 15 | uncateg_emos <- uncateg_emos[[1]] %>% 16 | html_children() 17 | uncateg_emos <- uncateg_emos[[3]] %>% 18 | html_children() 19 | 20 | uncateg_emo_urls <- unlist(lapply(uncateg_emos, function(act_emo) { 21 | act_emo %>% 22 | html_children() %>% 23 | html_attr("href") 24 | })) 25 | 26 | uncateg_save_dir <- "uncategorized" 27 | dir.create(uncateg_save_dir, showWarnings = FALSE) 28 | invisible(lapply(uncateg_emo_urls, function(act_url) { 29 | act_emo_url <- paste0(emojipedia_url, act_url) 30 | act_emo_vers <- read_html(act_emo_url) %>% 31 | html_node("section.vendor-list") %>% 32 | html_nodes("div.vendor-container.vendor-rollout-target") 33 | 34 | lapply(act_emo_vers, function(act_emo) { 35 | vers <- act_emo %>% 36 | html_node("div.vendor-info") %>% 37 | html_text() %>% 38 | trimws() 39 | ver_save_dir <- paste0(uncateg_save_dir, "/", gsub(" ", "_", vers)) 40 | dir.create(ver_save_dir, showWarnings = FALSE) 41 | img <- act_emo %>% 42 | html_node("div.vendor-image") %>% 43 | html_node("img") %>% 44 | html_attr("src") 45 | save_file <- paste0( 46 | ver_save_dir, "/", gsub("/", "", act_url), ".", 47 | gsub(".*\\.", "", basename(img)) 48 | ) 49 | if (!file.exists(save_file)) { 50 | download.file(img, save_file, quiet = TRUE) 51 | } 52 | }) 53 | })) 54 | 55 | ## get emojis categories 56 | 57 | categories <- read_html(emojipedia_url) %>% 58 | html_node(".block") %>% 59 | html_children() 60 | categories <- categories[[2]] %>% 61 | html_children() 62 | 63 | categories <- do.call(rbind, lapply(categories, function(act_cat) { 64 | categ_node <- act_cat %>% html_children() 65 | c( 66 | html_text(categ_node), 67 | html_attr(categ_node, "href") 68 | ) 69 | })) 70 | 71 | ## download each category emojis 72 | 73 | # get each emoji url 74 | categ_emo_urls <- lapply(seq_len(nrow(categories)), function(i) { 75 | act_categ <- categories[i, ] 76 | act_categ_url <- paste0(emojipedia_url, act_categ[[2]]) 77 | act_categ_emos <- read_html(act_categ_url) %>% 78 | html_node(".emoji-list") %>% 79 | html_children() 80 | 81 | unlist(lapply(act_categ_emos, function(act_emo) { 82 | act_emo %>% 83 | html_children() %>% 84 | html_attr("href") 85 | })) 86 | }) 87 | 88 | my_vers <- dir("uncategorized/") 89 | 90 | invisible(lapply(seq_along(categ_emo_urls), function(i) { 91 | categ_save_dir <- gsub("/", "", categories[i, 2]) 92 | dir.create(categ_save_dir, showWarnings = FALSE) 93 | act_urls <- categ_emo_urls[[i]] 94 | print(c(categ_save_dir, length(act_urls))) 95 | lapply(act_urls, function(act_url) { 96 | act_emo_url <- paste0(emojipedia_url, act_url) 97 | act_emo_vers <- read_html(act_emo_url) %>% 98 | html_node("section.vendor-list") %>% 99 | html_nodes("div.vendor-container.vendor-rollout-target") 100 | 101 | lapply(act_emo_vers, function(act_emo) { 102 | vers <- act_emo %>% 103 | html_node("div.vendor-info") %>% 104 | html_text() %>% 105 | trimws() 106 | if (!vers %in% my_vers) { 107 | return() 108 | } 109 | ver_save_dir <- paste0(categ_save_dir, "/", gsub(" ", "_", vers)) 110 | dir.create(ver_save_dir, showWarnings = FALSE) 111 | img <- act_emo %>% 112 | html_node("div.vendor-image") %>% 113 | html_node("img") %>% 114 | html_attr("src") 115 | save_file <- paste0( 116 | ver_save_dir, "/", gsub("/", "", act_url), ".", 117 | gsub(".*\\.", "", basename(img)) 118 | ) 119 | if (!file.exists(save_file)) { 120 | download.file(img, save_file, quiet = TRUE) 121 | } 122 | }) 123 | }) 124 | })) 125 | 126 | ## explore downloaded data 127 | 128 | library("dplyr") 129 | 130 | n_emojis <- do.call(rbind, lapply(dir(), function(act_categ) { 131 | act_categ_vers <- dir(act_categ) 132 | data.frame( 133 | Version = act_categ_vers, 134 | Category = act_categ, 135 | Emojis = sapply(act_categ_vers, function(act_vers) { 136 | length(dir(paste0(act_categ, "/", act_vers))) 137 | }) 138 | ) 139 | })) 140 | 141 | n_emojis <- n_emojis %>% filter(Category != "uncategorized") 142 | n_emojis %>% 143 | group_by(Version) %>% 144 | summarise(nemo = sum(Emojis)) %>% 145 | arrange(nemo) 146 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/02_imgs_to_array.R: -------------------------------------------------------------------------------- 1 | library("keras") 2 | 3 | if (Sys.info()[["user"]] == "jcrodriguez") { 4 | setwd("~/mytmp/emoji_ds/") 5 | } 6 | 7 | categories <- list.dirs(recursive = FALSE, full.names = FALSE) 8 | 9 | ## get max image size 10 | 11 | # act_categ_vers <- dir(categories[[1]]) 12 | # sizes <- do.call(rbind, lapply(act_categ_vers, function(act_vers) { 13 | # act_img <- dir(paste0(categories[[1]], "/", act_vers), full.names = TRUE)[[1]] 14 | # act_img %>% 15 | # keras::image_load() %>% 16 | # keras::image_to_array() %>% 17 | # dim() 18 | # })) 19 | # c(height, width) %<-% apply(sizes, 2, max)[1:2] 20 | c(height, width) %<-% c(32, 32) # use 32x32 as in CIFAR 21 | 22 | ## images to arrays 23 | 24 | categories <- categories[categories != "uncategorized"] 25 | imgs_arrs <- lapply(categories, function(act_categ) { 26 | act_categ_vers <- dir(act_categ) 27 | res <- lapply(act_categ_vers, function(act_vers) { 28 | imgs <- dir(paste0(act_categ, "/", act_vers), full.names = TRUE) 29 | lapply(imgs, function(act_img) { 30 | res <- act_img %>% 31 | image_load() %>% 32 | image_to_array() %>% 33 | image_array_resize(height, width) 34 | apply(res, 1:3, as.integer) 35 | }) 36 | }) 37 | names(res) <- act_categ_vers 38 | res 39 | }) 40 | names(imgs_arrs) <- categories 41 | 42 | # saveRDS(imgs_arrs, file = "imgs_arrs.rds") 43 | imgs_arrs <- readRDS("imgs_arrs.rds") 44 | 45 | library("abind") 46 | 47 | imgs_arr <- abind(lapply(imgs_arrs, function(i) { 48 | abind(lapply(i, function(j) { 49 | abind(j, along = 0) 50 | }), along = 1) 51 | }), along = 1) 52 | dim(imgs_arr) 53 | 54 | # saveRDS(imgs_arr, file = "imgs_arr.rds") 55 | 56 | ## get the emojis categories 57 | 58 | labels <- do.call(rbind, lapply(names(imgs_arrs), function(i) { 59 | cbind(i, unlist(lapply(names(imgs_arrs[[i]]), function(j) { 60 | rep(j, length(imgs_arrs[[i]][[j]])) 61 | }))) 62 | })) 63 | colnames(labels) <- c("Category", "Version") 64 | 65 | # saveRDS(labels, file = "labels.rds") 66 | 67 | ## uncategorized emojis to arrays 68 | 69 | act_categ_vers <- dir("uncategorized") 70 | uncat_arrs <- lapply(act_categ_vers, function(act_vers) { 71 | imgs <- dir(paste0("uncategorized", "/", act_vers), full.names = TRUE) 72 | lapply(imgs, function(act_img) { 73 | res <- act_img %>% 74 | image_load() %>% 75 | image_to_array() %>% 76 | image_array_resize(height, width) 77 | apply(res, 1:3, as.integer) 78 | }) 79 | }) 80 | names(uncat_arrs) <- act_categ_vers 81 | 82 | uncat_arr <- abind(lapply(uncat_arrs, function(j) { 83 | abind(j, along = 0) 84 | }), along = 1) 85 | dim(uncat_arr) 86 | 87 | rownames(uncat_arr) <- unlist(lapply(act_categ_vers, function(act_vers) 88 | paste0( 89 | act_vers, ":", 90 | sub("\\..*", "", dir(paste0("uncategorized", "/", act_vers))) 91 | ))) 92 | 93 | # saveRDS(uncat_arr, file = "uncat_arr.rds") 94 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/03_fit_model.R: -------------------------------------------------------------------------------- 1 | if (Sys.info()[["user"]] == "jcrodriguez") { 2 | setwd("~/mytmp/emoji_ds/") 3 | } 4 | 5 | library("autokeras") 6 | library("keras") 7 | 8 | ## load data 9 | 10 | set.seed(8818) 11 | labels <- readRDS("labels.rds") 12 | imgs_arr <- readRDS("imgs_arr.rds") 13 | 14 | test_idxs <- sample(seq_len(nrow(labels)), round(nrow(imgs_arr) * .2)) 15 | x_train <- imgs_arr[-test_idxs, , , ] 16 | y_train <- labels[-test_idxs, "Category"] 17 | x_test <- imgs_arr[test_idxs, , , ] 18 | y_test <- labels[test_idxs, "Category"] 19 | dim(x_train) 20 | head(y_train) 21 | 22 | rm(list = c("labels", "imgs_arr")) 23 | 24 | ## fit autokeras model 25 | 26 | # Create an image classifier, and train for one hour 27 | clf <- model_image_classifier(verbose = TRUE, augment = FALSE) %>% 28 | fit(x_train, y_train, time_limit = 1 * 60 * 60) 29 | 30 | # Evaluate 31 | clf %>% evaluate(x_test, y_test) 32 | 33 | # Re-train the best trained model with all the available data 34 | clf %>% 35 | final_fit( 36 | x_train, y_train, x_test, y_test, 37 | retrain = TRUE, time_limit = 20 * 60 38 | ) 39 | 40 | ## save the model 41 | clf %>% export_autokeras_model("emoji_ds.pkl") 42 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/03_fit_model_emos.R: -------------------------------------------------------------------------------- 1 | et.seed(8818) 2 | 3 | ## load data 4 | 5 | `🏷s` <- readRDS("labels.rds") 6 | `ℹⓂ️gs_🅰️rr` <- readRDS("imgs_arr.rds") 7 | 8 | `t🇪🇸t_🆔✖s` <- sample(seq_len(nrow(`🏷s`)), round(nrow(`ℹⓂ️gs_🅰️rr`) * .2)) 9 | `✖_🚂` <- `ℹⓂ️gs_🅰️rr`[-`t🇪🇸t_🆔✖s`, , , ] 10 | `y_🚂` <- `🏷s`[-`t🇪🇸t_🆔✖s`, "Category"] 11 | `✖_t🇪🇸t` <- `ℹⓂ️gs_🅰️rr`[`t🇪🇸t_🆔✖s`, , , ] 12 | `y_t🇪🇸t` <- `🏷s`[`t🇪🇸t_🆔✖s`, "Category"] 13 | dim(`✖_🚂`) 14 | head(`y_🚂`) 15 | 16 | ## fit autokeras model 17 | 18 | # Create an image classifier, and train for one hour 19 | `🆑f` <- model_image_classifier(verbose = TRUE, augment = FALSE) %>% 20 | fit(`✖_🚂`, `y_🚂`, time_limit = 1 * 60 * 60) 21 | 22 | # Evaluate 23 | `🆑f` %>% evaluate(`✖_t🇪🇸t`, `y_t🇪🇸t`) 24 | 25 | # Re-train the best trained model with all the available data 26 | `🆑f` %>% 27 | final_fit( 28 | `✖_🚂`, `y_🚂`, `✖_t🇪🇸t`, `y_t🇪🇸t`, 29 | retrain = TRUE, time_limit = 20 * 60 30 | ) 31 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/04_predict.R: -------------------------------------------------------------------------------- 1 | library("autokeras") 2 | library("keras") 3 | 4 | if (Sys.info()[["user"]] == "jcrodriguez") { 5 | setwd("~/mytmp/emoji_ds/") 6 | } 7 | 8 | ## load model 9 | 10 | uncat_arr <- readRDS("uncat_arr.rds") 11 | clf <- import_autokeras_model("emoji_ds.pkl") 12 | 13 | preds <- clf %>% predict(uncat_arr) 14 | names(preds) <- rownames(uncat_arr) 15 | 16 | # saveRDS(preds, file = "preds.rds") 17 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/LatinR2019.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: knitr 13 | LaTeX: pdfLaTeX 14 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/README.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | output: github_document 3 | --- 4 | 5 | # LatinR 2019 6 | 7 | ## Auto-Keras: An R easily accessible deep learning library 8 | 9 | ### Dependencies 10 | 11 | In order to reproduce this presentation steps, the following libraries must be 12 | installed: 13 | 14 | ```{r eval = FALSE} 15 | install.packages(c( 16 | "abind", "dplyr", "ggplot2", "keras", "reshape2", "rstudioapi", "rvest", 17 | "shiny", "xfun" 18 | )) 19 | 20 | if (!require("remotes")) { 21 | install.packages("remotes") 22 | } 23 | remotes::install_github("jcrodriguez1989/autokeras", dependencies = TRUE) 24 | ``` 25 | 26 | ### Creating the classifier 27 | 28 | Follow the steps of each file to get: 29 | 30 | * `01_get_data.R` to download all emoji pictures from [Emojipedia](https://emojipedia.org/). 31 | * `02_imgs_to_array.R` to transform all these pictures to an R array. 32 | * `03_fit_model.R` to fit the `autokeras` model. 33 | * `04_predict.R` to predict categories for new emojis. 34 | 35 | ### Fast Model Writing 36 | 37 | Steps to reproduce Fast Model Writing: 38 | 39 | 1) Open RStudio 40 | 2) In the `Console` pane type `source("presentation.R")` 41 | 3) Open a New File, in the New File `Source` pane type the letter `i` and press 42 | the `Tab` key. It will start writing super fast on the New File. 43 | 4) After, to start typing the emojized version, in the `Source` pane type the 44 | letter `s` and press the `Tab` key. 45 | 46 | ### Emojifier 47 | 48 | The Emojifier is a Shiny app that will load the previously trained model. This app allows to drop any image and generate a predicted category for it. 49 | 50 | ```{r out.width = "350px", out.height = "350px", fig.align="center", echo=FALSE} 51 | knitr::include_graphics("imgs/emojifier.png") 52 | ``` 53 | 54 | ### 2019 emoji trivia 55 | 56 | The 2019 emoji trivia is a Shiny app that will show each of the 2019 new emojis and lets the user guess into which category it was classified. 57 | This Shiny app can also be found at [shinyapps.io](https://jcrodriguez.shinyapps.io/Emojifier/). 58 | 59 | ```{r out.width = "700px", out.height = "350px", fig.align="center", echo=FALSE} 60 | knitr::include_graphics("imgs/trivia.png") 61 | ``` 62 | 63 | If the four emojis are correctly classified by the user, then as a prize it will provide a link to the Emojizer RStudio addin: 64 | 65 | ```{r out.width="730px", out.height="480px", fig.align="center", echo=FALSE} 66 | knitr::include_graphics("imgs/emojizer_1.png") 67 | knitr::include_graphics("imgs/emojizer_2.png") 68 | ``` 69 | 70 | 71 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/README.md: -------------------------------------------------------------------------------- 1 | 2 | # LatinR 2019 3 | 4 | ## Auto-Keras: An R easily accessible deep learning library 5 | 6 | ### Dependencies 7 | 8 | In order to reproduce this presentation steps, the following libraries 9 | must be installed: 10 | 11 | ``` r 12 | install.packages(c( 13 | "abind", "dplyr", "ggplot2", "keras", "reshape2", "rstudioapi", "rvest", 14 | "shiny", "xfun" 15 | )) 16 | 17 | if (!require("remotes")) { 18 | install.packages("remotes") 19 | } 20 | remotes::install_github("jcrodriguez1989/autokeras", dependencies = TRUE) 21 | ``` 22 | 23 | ### Creating the classifier 24 | 25 | Follow the steps of each file to get: 26 | 27 | - `01_get_data.R` to download all emoji pictures from 28 | [Emojipedia](https://emojipedia.org/). 29 | - `02_imgs_to_array.R` to transform all these pictures to an R array. 30 | - `03_fit_model.R` to fit the `autokeras` model. 31 | - `04_predict.R` to predict categories for new emojis. 32 | 33 | ### Fast Model Writing 34 | 35 | Steps to reproduce Fast Model Writing: 36 | 37 | 1) Open RStudio 38 | 2) In the `Console` pane type `source("presentation.R")` 39 | 3) Open a New File, in the New File `Source` pane type the letter `i` 40 | and press the `Tab` key. It will start writing super fast on the New 41 | File. 42 | 4) After, to start typing the emojized version, in the `Source` pane 43 | type the letter `s` and press the `Tab` key. 44 | 45 | ### Emojifier 46 | 47 | The Emojifier is a Shiny app that will load the previously trained 48 | model. This app allows to drop any image and generate a predicted 49 | category for 50 | it. 51 | 52 | 53 | 54 | ### 2019 emoji trivia 55 | 56 | The 2019 emoji trivia is a Shiny app that will show each of the 2019 new 57 | emojis and lets the user guess into which category it was classified. 58 | This Shiny app can also be found at 59 | [shinyapps.io](https://jcrodriguez.shinyapps.io/Emojifier/). 60 | 61 | 62 | 63 | If the four emojis are correctly classified by the user, then as a prize 64 | it will provide a link to the Emojizer RStudio 65 | addin: 66 | 67 | 68 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/activity.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/flags.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/food-drink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/food-drink.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/nature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/nature.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/objects.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/objects.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/people.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/people.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/symbols.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/symbols.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/travel-places.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/emojifier/data/categories/travel-places.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/emojifier/data/emoji_ds.pkl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/emojifier/data/emoji_ds.pkl -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/emojifier/emojifier.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: knitr 13 | LaTeX: pdfLaTeX 14 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/emojifier/global.R: -------------------------------------------------------------------------------- 1 | library("ggplot2") 2 | library("reshape2") 3 | library("autokeras") 4 | library("keras") 5 | 6 | # import trained autokeras model 7 | clf <- import_autokeras_model("data/emoji_ds.pkl") 8 | 9 | # transform an image file to an array 10 | # img_path: path to the image 11 | img_2_array <- function(img_path) { 12 | ## images to arrays 13 | c(height, width) %<-% c(32, 32) # use 32x32 as in CIFAR 14 | res <- img_path %>% 15 | image_load() %>% 16 | image_to_array() %>% 17 | image_array_resize(height, width) 18 | apply(res, 1:3, as.integer) 19 | } 20 | 21 | categories <- c( 22 | "activity", "flags", "food-drink", "nature", "objects", 23 | "people", "symbols", "travel-places" 24 | ) 25 | 26 | # classifies the image with the autokeras previously trained model 27 | # img_path: path to the image 28 | emojify <- function(img_path) { 29 | if (img_path == "") { 30 | return(list(src = "")) 31 | } 32 | 33 | img_arr <- img_2_array(img_path) 34 | dim(img_arr) <- c(1, 32, 32, 3) 35 | 36 | pred <- clf %>% predict(img_arr) 37 | # an image represents the category 38 | list(src = paste0("data/categories/", pred, ".png"), alt = pred) 39 | } 40 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/emojifier/server.R: -------------------------------------------------------------------------------- 1 | library("shiny") 2 | 3 | shinyServer(function(input, output, session) { 4 | img_file <- reactive({ 5 | in_file <- input$img_file 6 | if (is.null(in_file)) { 7 | return("") 8 | } 9 | in_file$datapath 10 | }) 11 | 12 | # original image 13 | output$img <- renderImage( 14 | list(src = img_file(), height = 250), 15 | deleteFile = FALSE 16 | ) 17 | 18 | # resulting classification category 19 | output$img_res <- renderImage(emojify(img_file()), deleteFile = FALSE) 20 | }) 21 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/emojifier/ui.R: -------------------------------------------------------------------------------- 1 | library("shiny") 2 | 3 | shinyUI( 4 | fluidPage( 5 | titlePanel("the Emojifier!"), 6 | br(), 7 | wellPanel( 8 | fluidRow(fileInput("img_file", label = "Drop an image!")), 9 | fluidRow(align = "center", plotOutput("img", height = 250)), 10 | fluidRow(align = "center", plotOutput("img_res", height = 140)) 11 | ) 12 | ) 13 | ) 14 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/imgs/emojifier.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/imgs/emojifier.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/imgs/emojizer_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/imgs/emojizer_1.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/imgs/emojizer_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/imgs/emojizer_2.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/imgs/trivia.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/imgs/trivia.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/presentation.R: -------------------------------------------------------------------------------- 1 | if (Sys.info()[["user"]] == "jcrodriguez") { 2 | setwd("~/Dropbox/R/autokeras/publications/LatinR2019/Presentation/Scripts/") 3 | } 4 | 5 | delayedAssign("i_thanks_yihui", { 6 | rstudioapi::setDocumentContents("") 7 | fit_model_code <- readLines( 8 | "03_fit_model.R", encoding = "UTF-8", warn = FALSE) 9 | xfun::rstudio_type(fit_model_code[1:23], pause = function() 0.01) 10 | Sys.sleep(2) 11 | xfun::rstudio_type(fit_model_code[23:29], pause = function() 0.01) 12 | Sys.sleep(2.5) 13 | xfun::rstudio_type(fit_model_code[29:32], pause = function() 0.01) 14 | Sys.sleep(1) 15 | xfun::rstudio_type(fit_model_code[32:39], pause = function() 0.01) 16 | }) 17 | 18 | delayedAssign("s", { 19 | fit_model_code <- readLines( 20 | "03_fit_model_emos.R", encoding = "UTF-8", warn = FALSE) 21 | xfun::rstudio_type(fit_model_code, pause = function() 0.01) 22 | }) 23 | 24 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/adhesive-bandage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/adhesive-bandage.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/auto-rickshaw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/auto-rickshaw.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/axe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/axe.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/ballet-shoes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/ballet-shoes.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/banjo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/banjo.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/beverage-box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/beverage-box.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/briefs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/briefs.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/brown-heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/brown-heart.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/butter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/butter.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/chair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/chair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/deaf-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/deaf-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/diving-mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/diving-mask.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/diya-lamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/diya-lamp.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/drop-of-blood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/drop-of-blood.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/falafel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/falafel.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/flamingo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/flamingo.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/garlic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/garlic.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/guide-dog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/guide-dog.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/hindu-temple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/hindu-temple.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/ice-cube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/ice-cube.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/kite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/kite.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/kneeling-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/kneeling-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/manual-wheelchair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/manual-wheelchair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/mate-drink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/mate-drink.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/mechanical-arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/mechanical-arm.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/mechanical-leg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/mechanical-leg.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/motorized-wheelchair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/motorized-wheelchair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/one-piece-swimsuit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/one-piece-swimsuit.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/onion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/onion.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/orangutan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/orangutan.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/otter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/otter.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/oyster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/oyster.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/parachute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/parachute.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/pinching-hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/pinching-hand.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/probing-cane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/probing-cane.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/razor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/razor.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/ringed-planet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/ringed-planet.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/safety-vest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/safety-vest.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/sari.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/sari.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/shorts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/shorts.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/skunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/skunk.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/sloth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/sloth.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/standing-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/standing-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/stethoscope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/stethoscope.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/waffle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/waffle.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/white-heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/white-heart.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/yawning-face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Emojipedia/yawning-face.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/adhesive-bandage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/adhesive-bandage.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/auto-rickshaw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/auto-rickshaw.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/axe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/axe.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/ballet-shoes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/ballet-shoes.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/banjo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/banjo.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/beverage-box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/beverage-box.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/briefs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/briefs.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/brown-heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/brown-heart.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/butter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/butter.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/chair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/chair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/deaf-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/deaf-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/diving-mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/diving-mask.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/diya-lamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/diya-lamp.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/drop-of-blood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/drop-of-blood.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/falafel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/falafel.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/flamingo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/flamingo.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/garlic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/garlic.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/guide-dog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/guide-dog.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/hindu-temple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/hindu-temple.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/ice-cube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/ice-cube.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/kite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/kite.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/kneeling-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/kneeling-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/manual-wheelchair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/manual-wheelchair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/mate-drink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/mate-drink.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/mechanical-arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/mechanical-arm.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/mechanical-leg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/mechanical-leg.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/motorized-wheelchair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/motorized-wheelchair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/one-piece-swimsuit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/one-piece-swimsuit.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/onion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/onion.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/orangutan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/orangutan.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/otter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/otter.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/oyster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/oyster.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/parachute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/parachute.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/pinching-hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/pinching-hand.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/probing-cane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/probing-cane.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/razor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/razor.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/ringed-planet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/ringed-planet.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/safety-vest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/safety-vest.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/sari.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/sari.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/shorts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/shorts.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/skunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/skunk.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/sloth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/sloth.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/standing-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/standing-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/stethoscope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/stethoscope.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/waffle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/waffle.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/white-heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/white-heart.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/yawning-face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Google/yawning-face.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/adhesive-bandage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/adhesive-bandage.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/auto-rickshaw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/auto-rickshaw.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/axe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/axe.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/ballet-shoes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/ballet-shoes.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/banjo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/banjo.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/beverage-box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/beverage-box.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/briefs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/briefs.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/brown-heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/brown-heart.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/butter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/butter.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/chair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/chair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/deaf-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/deaf-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/diving-mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/diving-mask.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/diya-lamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/diya-lamp.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/drop-of-blood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/drop-of-blood.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/falafel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/falafel.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/flamingo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/flamingo.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/garlic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/garlic.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/guide-dog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/guide-dog.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/hindu-temple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/hindu-temple.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/ice-cube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/ice-cube.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/kite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/kite.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/kneeling-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/kneeling-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/manual-wheelchair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/manual-wheelchair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/mate-drink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/mate-drink.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/mechanical-arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/mechanical-arm.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/mechanical-leg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/mechanical-leg.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/motorized-wheelchair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/motorized-wheelchair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/one-piece-swimsuit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/one-piece-swimsuit.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/onion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/onion.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/orangutan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/orangutan.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/otter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/otter.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/oyster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/oyster.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/parachute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/parachute.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/pinching-hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/pinching-hand.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/probing-cane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/probing-cane.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/razor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/razor.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/ringed-planet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/ringed-planet.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/safety-vest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/safety-vest.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/sari.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/sari.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/shorts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/shorts.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/skunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/skunk.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/sloth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/sloth.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/standing-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/standing-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/stethoscope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/stethoscope.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/waffle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/waffle.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/white-heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/white-heart.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/yawning-face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/JoyPixels/yawning-face.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/adhesive-bandage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/adhesive-bandage.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/auto-rickshaw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/auto-rickshaw.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/axe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/axe.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/ballet-shoes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/ballet-shoes.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/banjo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/banjo.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/beverage-box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/beverage-box.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/briefs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/briefs.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/brown-heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/brown-heart.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/butter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/butter.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/chair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/chair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/deaf-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/deaf-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/diving-mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/diving-mask.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/diya-lamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/diya-lamp.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/drop-of-blood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/drop-of-blood.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/falafel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/falafel.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/flamingo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/flamingo.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/garlic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/garlic.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/guide-dog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/guide-dog.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/hindu-temple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/hindu-temple.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/ice-cube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/ice-cube.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/kite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/kite.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/kneeling-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/kneeling-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/manual-wheelchair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/manual-wheelchair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/mate-drink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/mate-drink.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/mechanical-arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/mechanical-arm.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/mechanical-leg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/mechanical-leg.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/motorized-wheelchair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/motorized-wheelchair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/one-piece-swimsuit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/one-piece-swimsuit.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/onion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/onion.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/orangutan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/orangutan.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/otter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/otter.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/oyster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/oyster.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/parachute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/parachute.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/pinching-hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/pinching-hand.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/probing-cane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/probing-cane.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/razor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/razor.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/ringed-planet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/ringed-planet.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/safety-vest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/safety-vest.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/sari.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/sari.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/shorts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/shorts.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/skunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/skunk.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/sloth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/sloth.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/standing-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/standing-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/stethoscope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/stethoscope.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/waffle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/waffle.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/white-heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/white-heart.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/yawning-face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Microsoft/yawning-face.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/brown-heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/brown-heart.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/deaf-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/deaf-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/guide-dog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/guide-dog.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/kneeling-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/kneeling-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/mechanical-arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/mechanical-arm.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/mechanical-leg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/mechanical-leg.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/orangutan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/orangutan.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/pinching-hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/pinching-hand.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/sloth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/sloth.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/standing-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/standing-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/white-heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/white-heart.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/yawning-face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Samsung/yawning-face.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/adhesive-bandage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/adhesive-bandage.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/auto-rickshaw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/auto-rickshaw.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/axe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/axe.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/ballet-shoes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/ballet-shoes.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/banjo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/banjo.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/beverage-box.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/beverage-box.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/briefs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/briefs.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/brown-heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/brown-heart.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/butter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/butter.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/chair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/chair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/deaf-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/deaf-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/diving-mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/diving-mask.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/diya-lamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/diya-lamp.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/drop-of-blood.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/drop-of-blood.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/falafel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/falafel.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/flamingo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/flamingo.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/garlic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/garlic.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/guide-dog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/guide-dog.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/hindu-temple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/hindu-temple.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/ice-cube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/ice-cube.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/kite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/kite.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/kneeling-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/kneeling-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/manual-wheelchair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/manual-wheelchair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/mate-drink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/mate-drink.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/mechanical-arm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/mechanical-arm.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/mechanical-leg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/mechanical-leg.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/motorized-wheelchair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/motorized-wheelchair.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/one-piece-swimsuit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/one-piece-swimsuit.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/onion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/onion.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/orangutan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/orangutan.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/otter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/otter.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/oyster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/oyster.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/parachute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/parachute.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/pinching-hand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/pinching-hand.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/probing-cane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/probing-cane.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/razor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/razor.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/ringed-planet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/ringed-planet.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/safety-vest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/safety-vest.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/sari.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/sari.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/shorts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/shorts.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/skunk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/skunk.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/sloth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/sloth.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/standing-person.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/standing-person.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/stethoscope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/stethoscope.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/waffle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/waffle.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/white-heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/white-heart.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/yawning-face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/emojis/Twitter/yawning-face.png -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/data/preds.rds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/LatinR2019/Presentation/Scripts/trivia/data/preds.rds -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/global.R: -------------------------------------------------------------------------------- 1 | library("ggplot2") 2 | library("reshape2") 3 | # library("autokeras") 4 | # clf <- import_autokeras_model("data/emoji_ds.pkl") 5 | 6 | emojify <- function(imgs) { 7 | imgs <- gsub("\\.png", "", basename(imgs)) 8 | act_specs <- specs[specs$name %in% imgs, ] 9 | # act_preds <- predict(clf, uncat_arr[specs$name %in% imgs, , , ]) 10 | act_preds <- preds[sub(".*:", "", names(preds)) %in% imgs] 11 | act_preds <- factor(act_preds, levels = categories) 12 | res <- do.call(rbind, by(act_preds, as.character(act_specs$name), table)) 13 | res <- prop.table(res, 1) * 100 14 | res[imgs, ] 15 | } 16 | 17 | categories <- c( 18 | "activity", "flags", "food-drink", "nature", "objects", 19 | "people", "symbols", "travel-places" 20 | ) 21 | 22 | imgs <- dir("data/emojis/Google/", full.names = TRUE) 23 | # uncat_arr <- readRDS("data/uncat_arr.rds") 24 | preds <- readRDS("data/preds.rds") 25 | specs <- data.frame(do.call(rbind, strsplit(names(preds), ":"))) 26 | colnames(specs) <- c("category", "name") 27 | 28 | sample_imgs <- function(imgs, n = 4) { 29 | sample(imgs, n) 30 | } 31 | 32 | categ_plot <- function(vals) { 33 | vals <- melt(vals) 34 | vals$category <- rownames(vals) 35 | ggplot(vals) + 36 | geom_bar(aes(x = category, y = value, fill = category), 37 | stat = "identity") + 38 | lims(y = c(0, 100)) + 39 | theme(axis.text.x = element_text(angle = 20, hjust = 1)) 40 | } 41 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/server.R: -------------------------------------------------------------------------------- 1 | library("shiny") 2 | 3 | shinyServer(function(input, output, session) { 4 | current_images <- reactiveVal(sample_imgs(imgs)) 5 | 6 | output$img_1 <- renderImage( 7 | list(src = current_images()[[1]]), deleteFile = FALSE) 8 | output$img_2 <- renderImage( 9 | list(src = current_images()[[2]]), deleteFile = FALSE) 10 | output$img_3 <- renderImage( 11 | list(src = current_images()[[3]]), deleteFile = FALSE) 12 | output$img_4 <- renderImage( 13 | list(src = current_images()[[4]]), deleteFile = FALSE) 14 | 15 | observeEvent(input$submit, { 16 | pred_categs <- emojify(current_images()) 17 | user_resp <- c( 18 | input$sel_img_1, input$sel_img_2, input$sel_img_3, input$sel_img_4) 19 | res <- sapply(seq_len(nrow(pred_categs)), function(i) { 20 | act_row <- pred_categs[i, ] 21 | names(act_row)[which.max(act_row)] == user_resp[[i]] 22 | }) 23 | 24 | output$img_1_res <- renderPlot(categ_plot(pred_categs[1,])) 25 | output$img_2_res <- renderPlot(categ_plot(pred_categs[2,])) 26 | output$img_3_res <- renderPlot(categ_plot(pred_categs[3,])) 27 | output$img_4_res <- renderPlot(categ_plot(pred_categs[4,])) 28 | 29 | showNotification(paste0("Correct: ", sum(res))) 30 | if (all(res)) { 31 | showModal(modalDialog( 32 | title = "hooray!", 33 | paste0( 34 | "You've got them all, enjoy the emojizer by typing:\n", 35 | 'remotes::install_github("jcrodriguez1989/rco", ref = "emojizer")'), 36 | easyClose = TRUE 37 | )) 38 | } 39 | }) 40 | 41 | observeEvent(input$next_btn, { 42 | output$img_1_res <- renderPlot(NULL) 43 | output$img_2_res <- renderPlot(NULL) 44 | output$img_3_res <- renderPlot(NULL) 45 | output$img_4_res <- renderPlot(NULL) 46 | current_images(sample_imgs(imgs)) 47 | }) 48 | }) 49 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/trivia.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: knitr 13 | LaTeX: pdfLaTeX 14 | -------------------------------------------------------------------------------- /publications/LatinR2019/Presentation/Scripts/trivia/ui.R: -------------------------------------------------------------------------------- 1 | library("shiny") 2 | 3 | shinyUI( 4 | fluidPage( 5 | br(), 6 | wellPanel( 7 | fluidRow( 8 | column(6, align = "right", actionButton("submit", label = "Submit")), 9 | column(6, align = "left", actionButton("next_btn", label = "Next")) 10 | ), 11 | br(), 12 | fluidRow( 13 | column(6, align="center", fluidRow( 14 | plotOutput("img_1", height = 108, width = 108), 15 | selectInput("sel_img_1", label = "", choices = categories) 16 | )), 17 | column(6, fluidRow( 18 | plotOutput("img_1_res", height = 160) 19 | )) 20 | ), 21 | fluidRow( 22 | column(6, align="center", fluidRow( 23 | plotOutput("img_2", height = 108, width = 108), 24 | selectInput("sel_img_2", label = "", choices = categories) 25 | )), 26 | column(6, fluidRow( 27 | plotOutput("img_2_res", height = 160) 28 | )) 29 | ), 30 | fluidRow( 31 | column(6, align="center", fluidRow( 32 | plotOutput("img_3", height = 108, width = 108), 33 | selectInput("sel_img_3", label = "", choices = categories) 34 | )), 35 | column(6, fluidRow( 36 | plotOutput("img_3_res", height = 160) 37 | )) 38 | ), 39 | fluidRow( 40 | column(6, align="center", fluidRow( 41 | plotOutput("img_4", height = 108, width = 108), 42 | selectInput("sel_img_4", label = "", choices = categories) 43 | )), 44 | column(6, fluidRow( 45 | plotOutput("img_4_res", height = 160) 46 | )) 47 | ) 48 | ) 49 | ) 50 | ) 51 | -------------------------------------------------------------------------------- /publications/RStudio_tfblog_2019_04_16/README.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Auto-Keras post on RStudio's TensorFlow for R Blog" 3 | output: github_document 4 | --- 5 | 6 | Files for the [Auto-Keras post on RStudio's TensorFlow for R Blog](https://blogs.rstudio.com/tensorflow/posts/2019-04-16-autokeras/) published on April 16, 2019. 7 | 8 | Requires package `distill` in order to Knit post. 9 | -------------------------------------------------------------------------------- /publications/RStudio_tfblog_2019_04_16/README.md: -------------------------------------------------------------------------------- 1 | Auto-Keras post on RStudio’s TensorFlow for R Blog 2 | ================ 3 | 4 | Files for the [Auto-Keras post on RStudio’s TensorFlow for R 5 | Blog](https://blogs.rstudio.com/tensorflow/posts/2019-04-16-autokeras/) 6 | published on April 16, 2019. 7 | 8 | Requires package `distill` in order to Knit post. 9 | -------------------------------------------------------------------------------- /publications/RStudio_tfblog_2019_04_16/bibliography.bib: -------------------------------------------------------------------------------- 1 | 2 | @article{baker2016designing, 3 | title={Designing neural network architectures using reinforcement learning}, 4 | author={Baker, Bowen and Gupta, Otkrist and Naik, Nikhil and Raskar, Ramesh}, 5 | journal={arXiv preprint arXiv:1611.02167}, 6 | year={2016} 7 | } 8 | 9 | @article{pham2018efficient, 10 | title={Efficient neural architecture search via parameter sharing}, 11 | author={Pham, Hieu and Guan, Melody Y and Zoph, Barret and Le, Quoc V and Dean, Jeff}, 12 | journal={arXiv preprint arXiv:1802.03268}, 13 | year={2018} 14 | } 15 | 16 | @article{zoph2016neural, 17 | title={Neural architecture search with reinforcement learning}, 18 | author={Zoph, Barret and Le, Quoc V}, 19 | journal={arXiv preprint arXiv:1611.01578}, 20 | year={2016} 21 | } 22 | 23 | @inproceedings{luo2018neural, 24 | title={Neural architecture optimization}, 25 | author={Luo, Renqian and Tian, Fei and Qin, Tao and Chen, Enhong and Liu, Tie-Yan}, 26 | booktitle={Advances in neural information processing systems}, 27 | pages={7816--7827}, 28 | year={2018} 29 | } 30 | 31 | @article{liu2017hierarchical, 32 | title={Hierarchical representations for efficient architecture search}, 33 | author={Liu, Hanxiao and Simonyan, Karen and Vinyals, Oriol and Fernando, Chrisantha and Kavukcuoglu, Koray}, 34 | journal={arXiv preprint arXiv:1711.00436}, 35 | year={2017} 36 | } 37 | 38 | @article{real2018regularized, 39 | title={Regularized evolution for image classifier architecture search}, 40 | author={Real, Esteban and Aggarwal, Alok and Huang, Yanping and Le, Quoc V}, 41 | journal={arXiv preprint arXiv:1802.01548}, 42 | year={2018} 43 | } 44 | 45 | @article{jin2018efficient, 46 | title={Auto-Keras: An Efficient Neural Architecture Search System}, 47 | author={Jin, Haifeng and Song, Qingquan and Hu, Xia}, 48 | journal={arXiv preprint arXiv:1806.10282}, 49 | year={2018} 50 | } 51 | -------------------------------------------------------------------------------- /publications/RStudio_tfblog_2019_04_16/images/img_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/RStudio_tfblog_2019_04_16/images/img_1.jpg -------------------------------------------------------------------------------- /publications/RStudio_tfblog_2019_04_16/images/mnist_ggplotted_num.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/RStudio_tfblog_2019_04_16/images/mnist_ggplotted_num.png -------------------------------------------------------------------------------- /publications/RStudio_tfblog_2019_04_16/images/some_mnist_nums.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/RStudio_tfblog_2019_04_16/images/some_mnist_nums.png -------------------------------------------------------------------------------- /publications/RStudio_tfblog_2019_04_16/images/thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/r-tensorflow/autokeras/951a665614fde8c404bb90f485134f2a22843853/publications/RStudio_tfblog_2019_04_16/images/thumbnail.jpg -------------------------------------------------------------------------------- /tests/testthat.R: -------------------------------------------------------------------------------- 1 | library("testthat") 2 | library("autokeras") 3 | 4 | test_check("autokeras") 5 | -------------------------------------------------------------------------------- /tests/testthat/test-can_create_objects.R: -------------------------------------------------------------------------------- 1 | context("can_create_objects") 2 | 3 | test_that("can create image classifier", { 4 | skip_if(!reticulate::py_module_available("autokeras")) 5 | expect_is( 6 | model_image_classifier(), 7 | "AutokerasModel" 8 | ) 9 | }) 10 | 11 | test_that("can create image regressor", { 12 | skip_if(!reticulate::py_module_available("autokeras")) 13 | expect_is( 14 | model_image_regressor(), 15 | "AutokerasModel" 16 | ) 17 | }) 18 | 19 | test_that("can create text classifier", { 20 | skip_if(!reticulate::py_module_available("autokeras")) 21 | expect_is( 22 | model_text_classifier(), 23 | "AutokerasModel" 24 | ) 25 | }) 26 | 27 | test_that("can create text regressor", { 28 | skip_if(!reticulate::py_module_available("autokeras")) 29 | expect_is( 30 | model_text_regressor(), 31 | "AutokerasModel" 32 | ) 33 | }) 34 | 35 | test_that("can create structured data classifier", { 36 | skip_if(!reticulate::py_module_available("autokeras")) 37 | expect_is( 38 | model_structured_data_classifier(), 39 | "AutokerasModel" 40 | ) 41 | }) 42 | 43 | test_that("can create structured data regressor", { 44 | skip_if(!reticulate::py_module_available("autokeras")) 45 | expect_is( 46 | model_structured_data_regressor(), 47 | "AutokerasModel" 48 | ) 49 | }) 50 | -------------------------------------------------------------------------------- /tests/testthat/test-common_workflow.R: -------------------------------------------------------------------------------- 1 | context("common_workflow") 2 | 3 | # basically checks that there is no error in a normal workflow. 4 | test_that("AutoKeras for structured data workflow", { 5 | skip_if(!reticulate::py_module_available("autokeras")) 6 | library("keras") 7 | 8 | # use the iris dataset as an example 9 | set.seed(8818) 10 | # balanced sample 80% for training 11 | train_idxs <- unlist(by(seq_len(nrow(iris)), iris$Species, function(x) { 12 | sample(x, length(x) * .8) 13 | })) 14 | train_data <- iris[train_idxs, ] 15 | test_data <- iris[-train_idxs, ] 16 | 17 | colnames(iris) 18 | # Species will be the interest column to predict 19 | 20 | train_file <- paste0(tempdir(), "/iris_train.csv") 21 | write.csv(train_data, train_file, row.names = FALSE) 22 | 23 | # file to predict, cant have the response "Species" column 24 | test_file_to_predict <- paste0(tempdir(), "/iris_test_2_pred.csv") 25 | write.csv(test_data[, -5], test_file_to_predict, row.names = FALSE) 26 | 27 | test_file_to_eval <- paste0(tempdir(), "/iris_test_2_eval.csv") 28 | write.csv(test_data, test_file_to_eval, row.names = FALSE) 29 | 30 | # Initialize the structured data classifier 31 | 32 | clf <- model_structured_data_classifier(max_trials = 2) %>% # It tries 2 different models 33 | fit(train_file, "Species", epochs = 4) 34 | expect_is(clf, "AutokerasModel") 35 | 36 | # Predict with the best model 37 | (predicted_y <- clf %>% predict(test_file_to_predict)) 38 | expect_is(clf, "AutokerasModel") 39 | expect_true(nrow(predicted_y) == nrow(test_data)) 40 | 41 | # Evaluate the best model with testing data 42 | clf %>% evaluate(test_file_to_eval, "Species") 43 | expect_is(clf, "AutokerasModel") 44 | 45 | # Get the best trained Keras model, to work with the keras R library 46 | export_model(clf) 47 | }) 48 | --------------------------------------------------------------------------------