Nothing
## ----setup, include = FALSE---------------------------------------------------
library(keras)
knitr::opts_chunk$set(comment = NA, eval = FALSE)
## -----------------------------------------------------------------------------
# library(tensorflow)
# library(keras)
#
# layer_linear <- Layer(
# classname = "Linear",
# initialize = function(units, input_dim) {
# super()$`__init__`()
# w_init <- tf$random_normal_initializer()
# self$w <- tf$Variable(
# initial_value = w_init(shape = shape(input_dim, units),
# dtype = tf$float32)
# )
# b_init <- tf$zeros_initializer()
# self$b <- tf$Variable(
# initial_value = b_init(shape = shape(units),
# dtype = tf$float32)
# )
# },
# call = function(inputs, ...) {
# tf$matmul(inputs, self$w) + self$b
# }
# )
#
# x <- tf$ones(shape = list(2,2))
# layer <- layer_linear(units = 4, input_dim = 2)
# y <- layer(x)
# y
## -----------------------------------------------------------------------------
# get_weights(layer)
## -----------------------------------------------------------------------------
# layer_linear <- Layer(
# classname = "Linear",
# initialize = function(units, input_dim) {
# super()$`__init__`()
# self$w <- self$add_weight(
# shape = shape(input_dim, units),
# initializer = "random_normal",
# trainable = TRUE
# )
# self$b <- self$add_weight(
# shape = shape(units),
# initializer = "zeros",
# trainable = TRUE
# )
# },
# call = function(inputs, ...) {
# tf$matmul(inputs, self$w) + self$b
# }
# )
## -----------------------------------------------------------------------------
# layer_compute_sum <- Layer(
# classname = "ComputeSum",
# initialize = function(input_dim) {
# super()$`__init__`()
# self$total <- tf$Variable(
# initial_value = tf$zeros(shape(input_dim)),
# trainable = FALSE
# )
# },
# call = function(inputs, ...) {
# self$total$assign_add(tf$reduce_sum(inputs, axis = 0L))
# self$total
# }
# )
#
# x <- tf$ones(shape(2,2))
# mysum <- layer_compute_sum(input_dim = 2)
# print(mysum(x))
# print(mysum(x))
## -----------------------------------------------------------------------------
# get_weights(mysum)
# mysum$non_trainable_weights
## -----------------------------------------------------------------------------
# layer_linear <- Layer(
# classname = "Linear",
# initialize = function(units, input_dim) {
# super()$`__init__`()
# self$w <- self$add_weight(
# shape = shape(input_dim, units),
# initializer = "random_normal",
# trainable = TRUE
# )
# self$b <- self$add_weight(
# shape = shape(units),
# initializer = "zeros",
# trainable = TRUE
# )
# },
# call = function(inputs, ...) {
# tf$matmul(inputs, self$w) + self$b
# }
# )
## -----------------------------------------------------------------------------
# layer_linear <- Layer(
# classname = "Linear",
# initialize = function(units) {
# super()$`__init__`()
# self$units <- units
# },
# build = function(input_shape) {
# self$w <- self$add_weight(
# shape = shape(input_shape[2], self$units),
# initializer = "random_normal",
# trainable = TRUE
# )
# self$b <- self$add_weight(
# shape = shape(self$units),
# initializer = "zeros",
# trainable = TRUE
# )
# },
# call = function(inputs, ...) {
# tf$matmul(inputs, self$w) + self$b
# }
# )
## -----------------------------------------------------------------------------
# layer <- layer_linear(units = 32)
# x <- tf$ones(shape = list(2,2))
# layer(x)
## -----------------------------------------------------------------------------
# # Let's assume we are reusing the Linear class
# # with a `build` method that we defined above.
# layer_mlp_block <- Layer(
# classname = "MLPBlock",
# initialize = function() {
# super()$`__init__`()
# self$linear_1 <- layer_linear(units = 32)
# self$linear_2 <- layer_linear(units = 32)
# self$linear_3 <- layer_linear(units = 1)
# },
# call = function(inputs, ...) {
# inputs %>%
# self$linear_1() %>%
# tf$nn$relu() %>%
# self$linear_2() %>%
# tf$nn$relu() %>%
# self$linear_3()
# }
# )
#
# mlp <- layer_mlp_block()
#
# y <- mlp(tf$ones(shape(3, 64))) # The first call to the `mlp` will create the weights
# length(mlp$weights)
# length(mlp$trainable_weights)
## -----------------------------------------------------------------------------
# # A layer that creates an activity regularization loss
# layer_activity_reg <- Layer(
# classname = "ActivityRegularizationLayer",
# initialize = function(rate = 1e-2) {
# super()$`__init__`()
# self$rate <- rate
# },
# call = function(inputs) {
# self$add_loss(self$rate * tf$reduce_sum(inputs))
# inputs
# }
# )
## -----------------------------------------------------------------------------
# layer_outer <- Layer(
# classname = "OuterLayer",
# initialize = function() {
# super()$`__init__`()
# self$dense <- layer_dense(
# units = 32,
# kernel_regularizer = regularizer_l2(1e-3)
# )
# },
# call = function(inputs) {
# self$dense(inputs)
# }
# )
#
# layer <- layer_outer()
# x <- layer(tf$zeros(shape(1,1)))
#
# # This is `1e-3 * sum(layer.dense.kernel ** 2)`,
# # created by the `kernel_regularizer` above.
# layer$losses
## -----------------------------------------------------------------------------
# layer_linear <- Layer(
# classname = "Linear",
# initialize = function(units, ...) {
# super()$`__init__`(...)
# self$units <- units
# },
# build = function(input_shape) {
# self$w <- self$add_weight(
# shape = shape(input_shape[2], self$units),
# initializer = "random_normal",
# trainable = TRUE
# )
# self$b <- self$add_weight(
# shape = shape(self$units),
# initializer = "zeros",
# trainable = TRUE
# )
# },
# call = function(inputs, ...) {
# tf$matmul(inputs, self$w) + self$b
# },
# get_config = function() {
# list(
# units = self$units
# )
# }
# )
#
# layer <- layer_linear(units = 64)
# config <- get_config(layer)
# new_layer <- from_config(config)
## -----------------------------------------------------------------------------
# layer_custom_dropout <- Layer(
# classname = "CustomDropout",
# initialize = function(rate, ...) {
# super()$`__init__`(...)
# self$rate <- rate
# },
# call = function(inputs, training = NULL) {
# if (!is.null(inputs) && training) {
# inputs <- tf$nn$dropout(inputs, rate = self$rate)
# }
# inputs
# }
# )
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.