R包TensorFlow在尝试训练CNN时不接受字典

时间:2018-04-21 19:35:53

标签: python r tensorflow deep-learning

我是神经网络新手,正在尝试使用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上运行此功能 提前感谢任何建议/帮助。

谢谢, 贝

0 个答案:

没有答案