Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
支持回调\u提前\u在R中停止_R_Tensorflow_Machine Learning_Keras_Typeerror - Fatal编程技术网

支持回调\u提前\u在R中停止

支持回调\u提前\u在R中停止,r,tensorflow,machine-learning,keras,typeerror,R,Tensorflow,Machine Learning,Keras,Typeerror,我正在研究R的一个神经网络项目,它使用Keras和Tensorflow。我真的很想利用early Stop函数,主要是为了获得最佳权重,但我正在努力绕过错误:“TypeError:”>“EarlyStopping”和“float”实例之间不支持”。这里回答了一个类似的问题:,但解决方案都是python编码。在这里使用R命令的任何帮助都将非常好 这是我的密码: # API model model <- local({ input = layer_input(shape = c(44),

我正在研究R的一个神经网络项目,它使用Keras和Tensorflow。我真的很想利用early Stop函数,主要是为了获得最佳权重,但我正在努力绕过错误:“TypeError:”>“EarlyStopping”和“float”实例之间不支持”。这里回答了一个类似的问题:,但解决方案都是python编码。在这里使用R命令的任何帮助都将非常好

这是我的密码:

# API model
model <- local({
  input = layer_input(shape = c(44),  name = 'main_input')
  
  layer1 = input %>%
    layer_dense(units = 22, activation = "relu")
  
  layer2 = input %>%
    layer_dense(units = 22, activation = "relu")
  
  output = layer_concatenate(c(layer1, layer2)) %>%
    layer_dense(units = 10, activation = "relu") %>%
    layer_dense(units = 2, activation = "sigmoid")
  
  keras_model(inputs = input, outputs = output)
})

model %>%
  compile(loss = "binary_crossentropy",
          optimizer = 'adam',
          metrics = "accuracy")

history = model %>%
  fit(train,
      trainLabels,
      epoch = 25,
      batch_size = 32,
      validation_split = 0.2)
     callback_early_stopping(monitor = "val_acc", patience = 5, restore_best_weights = TRUE))

#Error in py_compare_impl(a, b, op) : 
  TypeError: '>' not supported between instances of 'EarlyStopping' and 'float'
#API模型
型号%
层密度(单位=22,活化=“relu”)
第二层=输入%>%
层密度(单位=22,活化=“relu”)
输出=层连接(c(层1,层2))%>%
层密度(单位=10,活化=“relu”)%>%
层密度(单位=2,激活=“sigmoid”)
keras_模型(输入=输入,输出=输出)
})
型号%>%
编译(loss=“binary\u crossentropy”,
优化器='adam',
metrics=“准确性”)
历史记录=型号%>%
适合(训练),
列车标签,
纪元=25,
批次大小=32,
验证(拆分=0.2)
回调\u提前\u停止(monitor=“val\u acc”,耐心=5,恢复\u最佳\u权重=TRUE))
#py_compare_impl(a、b、op)中出错:
TypeError:“EarlyStoping”和“float”实例之间不支持“>”
我的数据已转换为数字结构,并在矩阵中格式化以运行Keras/Tensorflow命令。但是,我知道我的模型中的变量是:

str(train)
 num [1:2594, 1:44] 0.0202 -1.9071 0.0202 0.0202 -1.9071 ...

tail(model$variables)

...

[[5]]
<tf.Variable 'dense_21/kernel:0' shape=(10, 2) dtype=float32, numpy=
array([[-0.79153246,  0.20632687],
       [-0.21896149,  0.02037789],
       [-0.04512246,  0.29801697],
       [-0.46573785,  0.3391741 ],
       [-0.71519893,  0.8290489 ],
       [ 0.82080096, -0.13467254],
       [-0.60803676, -0.5283991 ],
       [ 0.8202912 , -0.89913267],
       [ 0.6229674 , -0.9428901 ],
       [ 1.1776545 , -0.8499227 ]], dtype=float32)>

[[6]]
<tf.Variable 'dense_21/bias:0' shape=(2,) dtype=float32, numpy=array([-0.09607901,  0.09400514], dtype=float32)>
str(列车)
数值[1:2594,1:44]0.0202-1.9071 0.0202 0.0202-1.9071。。。
尾部(模型$variables)
...
[[5]]
[[6]]
我还尝试使用“int32”来构建模型,而不是float32,但似乎没有float我无法构建任何密集层。对我如何前进有什么想法/想法吗

谢谢大家!