我是神经网络新手,正在尝试使用tensorflow R软件包构建CNN。我一直在尝试使用CNN来跟踪这个例子来识别kaggle上的手写数字:
https://www.kaggle.com/cd12631/using-r-and-tensorflow-to-build-cnn
在我的情况下,我建立一个CNN来检测X射线图像中是否存在疾病。我从以下部分拍摄了一小部分X射线图像:
https://www.kaggle.com/nih-chest-xrays/data
我将图像缩小为128x128并使用库png和pixmap读取它们。我将它们放入数据框中,每行代表一个图像。每个灰度像素有16,384(128 * 128)列,以及是否存在疾病的标识符以及每个图像的名称。
我已经密切关注如何制作CNN的上述示例,并使用以下步骤创建我的神经网络: 卷积层1→最大化层1→卷积层2→最大化层2→展平层→完全连接层1→完全连接层2
创建所有这些图层后,我试图训练数据。我从小开始,只绕过它两次,以确保它正常运行。当我尝试运行此for循环时,我收到以下错误:
CODE:
sess <- tf$Session()
init <- tf$global_variables_initializer()
sess$run(init)
for (i in 1:2){
batch_seq <- round(100) %>% sample(seq_len(1000), size = .)
batches_xs <- train_data_1000[batch_seq,-(1:2)]
batches_ys <- Train_Disease_Present[c(batch_seq)]
sess$run(train_step_by_GD, feed_dict = dict(xs = batches_xs, ys = batches_ys, keep_prob_s= 0.55))
if(i %% 50 == 0){
print(paste("Step =", i, "|| Training Accuracy =", compute_accuracy(output_result, train_data_1000, Train_Disease_Present), sep = " "))
print("---")
print(paste("Step =", i, "|| Validation Accuracy =", compute_accuracy(output_result, test_data_500, Test_Disease_Present), sep = " "))
print("=================================================")
}
}
ERROR:
Error in py_call_impl(callable, dots$args, dots$keywords) :
TypeError: float() argument must be a string or a number, not 'dict'
Detailed traceback:
File "C:\Users\rorinan\AppData\Local\CONTIN~1\ANACON~1\envs\R-TENS~1\lib\site-packages\tensorflow\python\client\session.py", line 895, in run
run_metadata_ptr)
File "C:\Users\rorinan\AppData\Local\CONTIN~1\ANACON~1\envs\R-TENS~1\lib\site-packages\tensorflow\python\client\session.py", line 1097, in _run
np_val = np.asarray(subfeed_val, dtype=subfeed_dtype)
File "C:\Users\rorinan\AppData\Local\CONTIN~1\ANACON~1\envs\R-TENS~1\lib\site-packages\numpy\core\numeric.py", line 531, in asarray
return array(a, dtype, copy=False, order=order)
我担心我对Python不够熟悉,无法理解错误的含义。看起来它与需要字符串或数字而不是字典有关。我已经完成并运行了Kaggle上的示例代码(上面发布的第一个链接),并且运行完美 - 使用字典。我已经研究了其他几个例子,他们现在似乎都在使用字典。所以我不确定为什么我的代码会给我这个错误。
我在R版本3.4.4上运行此功能 提前感谢任何建议/帮助。
谢谢, 贝