【发布时间】:2018-08-16 16:52:39
【问题描述】:
我正在使用 R 3.2.3、Keras 2.1.6 和 TensorFlow 1.10 来解决文本分类问题。我正在尝试通过 TensorBoard 设置仪器,但我遇到了这个错误:
Error in py_call_impl(callable, dots$args, dots$keywords) : ValueError: To visualize embeddings, embeddings_data must be provided.
这是我的最小模型/训练设置:
# x, y, and tokens loaded from tab files
num_samples <- 30000L
train_sample <- sample(1:dim(x)[1], num_samples)
tb_log <- "tb_log"
tensorboard(tb_log)
model <- keras_model_sequential() %>%
layer_embedding(input_dim = dim(tokens)[1], output_dim = 128, input_length = 1000) %>%
layer_conv_1d(filters = 32, kernel_size = 7, activation = "relu") %>%
layer_max_pooling_1d(pool_size = 5) %>%
layer_conv_1d(filters = 32, kernel_size = 7, activation = "relu") %>%
layer_global_max_pooling_1d() %>%
layer_dense(units = 1)
summary(model)
model %>% compile(
optimizer = "rmsprop",
loss = "binary_crossentropy",
metrics = c("acc")
)
history <- model %>% fit(
x[train_sample,], y[train_sample],
epochs = 3,
batch_size = 128,
validation_split = 0.5,
callbacks = c(callback_tensorboard(
log_dir = tb_log,
embeddings_freq = 1,
histogram_freq = 1
))
)
模型在第一个 epoch 进行训练,然后过程因上述错误而终止。如果我从fit 调用中删除callbacks 选项,模型将按预期进行训练和工作。我可以看到回调没有 embeddings_data 参数。我已经尝试按照here 的描述传入embeddings_metadata,但我仍然遇到同样的错误。如果我只是从回调中删除 embedding_freq 选项,我会收到此错误:
Error in py_call_impl(callable, dots$args, dots$keywords) :
InvalidArgumentError: You must feed a value for placeholder tensor 'embedding_10_input' with dtype float and shape [?,1000]
我是否遗漏了一些明显的东西?
更新
第二个错误(InvalidArgumentError)显然是由于在尝试使用带有embeddings_freq 设置的回调后环境的某些损坏引起的。如果我删除该选项,删除日志文件夹,然后从头开始重新启动我的 R 会话,我可以让它训练并生成直方图等,但仍然无法可视化实际嵌入。
【问题讨论】:
标签: r tensorflow keras