R 产生重复尖峰的功能

R 产生重复尖峰的功能,r,function,signals,R,Function,Signals,我在网上问了一个类似的问题,但没有得到回应。我还是继续做了,并且构建了一个函数,但是我在复制方面遇到了问题 这是因为: 我正在寻找一个函数(或短算法,理想情况下在R中实现),该函数产生类似以下内容: 请看,我希望能够生成一个由n个项组成的向量,该向量遵循这种模式,映射到一组输入(比如,seq(1:n))。理想情况下,我可以告诉算法在每第k个时间段“尖峰”到最大高度h,并以r的速率衰减。然而,只要能够生成周期性出现的尖峰模式,我就足够高兴了 我用R写了一些代码,包括在这里,效果相当好 ## Ne

我在网上问了一个类似的问题,但没有得到回应。我还是继续做了,并且构建了一个函数,但是我在复制方面遇到了问题

这是因为:

我正在寻找一个函数(或短算法,理想情况下在R中实现),该函数产生类似以下内容:

请看,我希望能够生成一个由n个项组成的向量,该向量遵循这种模式,映射到一组输入(比如,seq(1:n))。理想情况下,我可以告诉算法在每第k个时间段“尖峰”到最大高度h,并以r的速率衰减。然而,只要能够生成周期性出现的尖峰模式,我就足够高兴了

我用R写了一些代码,包括在这里,效果相当好

## Neural Networks / Deep Learning ##
# first, must install Python from:
#    https://www.anaconda.com/download/#windows
#    https://www.python.org/downloads/
if (!require(keras)) devtools::install_github("rstudio/keras") ; library(keras)
# install_tensorflow()

spikes_model <- function(maxiter, total_spikes = 10, max_height = 0.001, min_height = 0.000005, decay_rate = 1) {
  value_at_iteration <- rep(0, maxiter)
  spike_at <- maxiter / total_spikes
  current_rate <- min_height
  holder_timeval <- 0
  for(i in 1:maxiter) {
    spike_indicator <- i / spike_at
    if (is.integer(spike_indicator)) {
      current_rate <- max_height
      value_at_iteration[i] <- current_rate
      holder_timeval <- spike_indicator
    } else if (i < spike_at) {
      current_rate <- min_height
      value_at_iteration[i] <- current_rate
    } else {
      timeval <- i - (holder_timeval*spike_at)
      current_rate <- max_height*exp(-decay_rate*timeval) + min_height
      value_at_iteration[i] <- current_rate
    }
  }
  return(value_at_iteration)
}

asdf <- spikes_model(maxiter = 100)
plot(asdf, type="l")
神经网络/深度学习## #首先,必须从以下位置安装Python: # https://www.anaconda.com/download/#windows # https://www.python.org/downloads/ 如果(!require(keras))开发工具::安装github(“rstudio/keras”);图书馆(keras) #安装_tensorflow()
spikes_model哇,我刚刚发现了自己的错误。我使用的是
is.integer()
函数,它不能按我所希望的方式工作。我需要使用
mosaic
中的
is.whole.number()
函数

修正了这个错误,我找到了下面的图表,它正是我想要的


良好的MCVE(+1),但问题与
机器学习
深度学习
无关-请不要垃圾邮件标记(已删除)。@desertnaut此函数用于在R中引入基于
keras
的神经网络的学习率的间歇性峰值。它绝对与机器学习有关,我想未来人们会因为这个原因使用这个问题。查找中标记为“比较固定LR和循环LR”的图像。事实上,我可能需要一个通用函数,我将在宇宙飞船上的设备下游使用该函数,这并不自动使问题与空间工程相关。。。还有更直接的方法来产生周期性LR,这是公平的。但是,这里的函数直接用于机器学习过程,并且是为机器学习过程而构建的。我觉得有必要贴标签。如果您认为合适,可以删除它们。将整个代码(或至少受影响的特定部分)包括在内,包括可能需要的导入(什么是
mosaic
?),这将很有趣。将立即添加
eps <- 1000
sch <- spikes_model(eps)
lr_schedule <- function(epoch, lr) {
  lrn <- sch[as.integer(epoch)]
  lrn <- k_cast_to_floatx(lrn)
  return(lrn)
}
## Add callback to automatically adjust learning rate downward when training reaches plateau ##
reduce_lr <- callback_learning_rate_scheduler(lr_schedule)

## Fit model using trainig data, validate with validation data ##
mod1.hst <- mod1 %>% fit(
  x=X.train, y=Y.train,
  epochs=eps, batch_size=nrow(X.train),
  validation_data = list(X.val, Y.val),
  shuffle=TRUE, callbacks = list(checkpoint, reduce_lr)
)