lidc_nodule_detection icon indicating copy to clipboard operation
lidc_nodule_detection copied to clipboard

ValueError: need more than 1 value to unpack

Open Asteriajojo opened this issue 6 years ago • 18 comments

您好,想请问一下为什么我们在执行write_bin_file.py 报这个错误呢?呜呜呜呜呜 Matrix shape: (133,) Traceback (most recent call last): File "write_bin_file.py", line 73, in main() File "write_bin_file.py", line 63, in main h, w, l = images.shape ValueError: need more than 1 value to unpack

Asteriajojo avatar Feb 20 '19 13:02 Asteriajojo

而且我觉得Matrix shape应该是(133,512,512)呀,为什么输出是(133,)呢。。。菜鸟一只还希望大佬帮助QAQ 我们除了路径以外并没有改动文件的内容 😂

Asteriajojo avatar Feb 20 '19 13:02 Asteriajojo

@Asteriajojo images是一个list,里面放的是排序后的每一个dicom切片的pixel_arry,根据你的描述,我猜你是没有把images变成numpy的array,加一个images = np.array(images)再试试

zhwhong avatar Feb 21 '19 05:02 zhwhong

嗯嗯问题我们已经解决啦 主要是第一个病人的dcm文件中有两张维度不一样的dcm,把那两张删除掉就可以了~如果可以的话我还想再问一下pylung这个文件夹是用来干什么的呢,我看这里面有一些内容和api_lidc中的功能差不多,而且它除了对图像进行处理,还有测试训练什么的,所以就想请问一下这整个文件夹相对于整个项目来说起到了什么作用呢?谢谢大佬了😭

Asteriajojo avatar Feb 21 '19 08:02 Asteriajojo

@Asteriajojo CNN_LSTM这个就是项目的主体部分,其他的都是过程中用到的辅助的东西,仅供参考,没什么实际的作用。api_lidc是一些处理LIDC原始数据,分析数据的脚本,旨在开始时对数据有个大概了解的作用。至于pylung和cnn_3d这些和主体都没什么关系,pylung那个是一个做CT切割后的patch小块分类的一个分支,大概试了一下就没有继续深入,cnn_3d那个是当时做kaggle上一个肺结核分类比赛时写的两个脚本,也没什么关系,不用管这些。核心部分都在CNN_LSTM这里面。

zhwhong avatar Feb 21 '19 10:02 zhwhong

那是不是我们主要用api_lidc和CNN_LSTM就可以运行出结果呢?😊

Asteriajojo avatar Feb 21 '19 11:02 Asteriajojo

@Asteriajojo 理论上是的,这中间还有一些别的数据处理和数据准备的乱七八糟的东西,需要对Tensorbox这个项目有一定了解,主要是基于那个做的,所以可能中间还会有很多小问题,仅供参考学习使用,这个项目已经很久没有更新了,目前新的tensorflow还不确定是否兼容,所以如果是工程使用请慎重,仅供参考学习。

zhwhong avatar Feb 21 '19 12:02 zhwhong

好滴呢~谢谢大佬了!!爱您!

Asteriajojo avatar Feb 21 '19 12:02 Asteriajojo

@Asteriajojo 印象中有前面两个ckpt就够了吧,inception_v1.ckpt和resnet_v1_101.ckpt,至于save.ckpt-150000v2下不下来没关系,这个是tensorbox做行人检测训练的model,如果用在LIDC上,是需要重新训练的,这个没有什么用,有另外两个就可以了。

zhwhong avatar Feb 22 '19 05:02 zhwhong

嗯嗯感激不尽~谢谢^ ^

Asteriajojo avatar Feb 22 '19 05:02 Asteriajojo

虽然说我之前说是最后一个问题…但是我刚好问题解决就删了嘛~没想到还是被你看到了hhhhhh 所以我想再提个问可以吗😂 root@master1:~/lidc_nodule_detection-master/CNN_LSTM# sh run.sh WARNING:tensorflow:From train.py:41: init (from tensorflow.python.ops.rnn_cell_impl) is deprecated and will be removed in a future version. Instructions for updating: This class is deprecated, please use tf.nn.rnn_cell.LSTMCell, which supports all the feature this cell currently has. Please replace the existing code with tf.nn.rnn_cell.LSTMCell(name='basic_lstm_cell'). WARNING:tensorflow:From train.py:464: start_queue_runners (from tensorflow.python.training.queue_runner_impl) is deprecated and will be removed in a future version. Instructions for updating: To construct input pipelines, use the tf.data module. WARNING:tensorflow:tf.train.start_queue_runners() was called when no queue runners were defined. You can safely remove the call to this deprecated function. Traceback (most recent call last): File "train.py", line 556, in main() File "train.py", line 553, in main train(H, test_images=[]) File "train.py", line 468, in train d = gen.next() File "/root/lidc_nodule_detection-master/CNN_LSTM/utils/train_utils.py", line 83, in load_data_gen for d in data: File "/root/lidc_nodule_detection-master/CNN_LSTM/utils/train_utils.py", line 44, in load_idl_tf I = imread(anno.imageName) File "/root/anaconda2/lib/python2.7/site-packages/numpy/lib/utils.py", line 101, in newfunc return func(*args, **kwds) File "/root/anaconda2/lib/python2.7/site-packages/scipy/misc/pilutil.py", line 164, in imread im = Image.open(name) File "/root/anaconda2/lib/python2.7/site-packages/PIL/Image.py", line 2250, in open fp = builtins.open(fp, "rb") IOError: [Errno 2] No such file or directory: '/root/lidc_nodule_detection-master/CNN_LSTM/data/lung_data/./lung_data/LIDC-IDRI-0188.dat_31_.bmp'

**请问一下在运行run.sh脚本的时候为什么会出现这样的错呢?

还有test.sh 里的save.ckpt-999999是哪里来的呢😭 是不是如果train.py跑起来了的话,就会生成ckpt文件 也就是向这些生成的文件夹里面除了hypes还会有一个ckpt文件?** root@master1:~/lidc_nodule_detection-master/CNN_LSTM# cd output_inception/ root@master1:~/lidc_nodule_detection-master/CNN_LSTM/output_inception# ls lstm_rezoom_lung_2019_02_21_20.32 lstm_rezoom_lung_2019_02_22_14.11 lstm_rezoom_lung_2019_02_22_15.31 lstm_rezoom_lung_2019_02_22_16.16 lstm_rezoom_lung_2019_02_22_20.55 lstm_rezoom_lung_2019_02_21_20.35 lstm_rezoom_lung_2019_02_22_14.39 lstm_rezoom_lung_2019_02_22_15.47 lstm_rezoom_lung_2019_02_22_17.10 lstm_rezoom_lung_2019_02_21_20.40 lstm_rezoom_lung_2019_02_22_14.48 lstm_rezoom_lung_2019_02_22_15.53 lstm_rezoom_lung_2019_02_22_18.25 lstm_rezoom_lung_2019_02_21_20.43 lstm_rezoom_lung_2019_02_22_15.16 lstm_rezoom_lung_2019_02_22_16.04 lstm_rezoom_lung_2019_02_22_19.51 root@master1:~/lidc_nodule_detection-master/CNN_LSTM/output_inception# cd lstm_rezoom_lung_2019_02_22_20.55/ root@master1:~/lidc_nodule_detection-master/CNN_LSTM/output_inception/lstm_rezoom_lung_2019_02_22_20.55# ls hypes.json 真滴打扰了QAQ

Asteriajojo avatar Feb 22 '19 12:02 Asteriajojo

1.你这里的问题好像是tensorflow.python.ops.rnn_cell_impl模块在新版本的tensorflow里面被其他函数取代了,你那里提示你换成tf.nn.rnn_cell.LSTMCell,改一下应该就可以。然后tensorflow.python.training.queue_runner_impl队列产生数据好像也是被改了,让你用tf.data啥的,也是版本的问题,原来那个是用了一个队列来处理batch数据,会快一些,你使用别的方式处理batch数据应该也是可以的,比如把文件名存在一个list里面,然后每次读一个batch出来训练。然后后面这个也是看提示,你文件夹里面缺少了一个图片LIDC-IDRI-0188.dat_31_.bmp。因为这个是之前的tf版本写的,tf目前更新很快,很多函数都在后来的版本中重新封装了。 2.save.ckpt-999999这个是你调用run.sh训练完成之后在output里面生成的checkpoint,你train完了就有了,然后测试时就可以直接用。你可以看train.py里面424行ckpt_file = H['save_dir'] + '/save.ckpt',522行和547行,训练完了会往目标文件夹存储下训练好的checkpoint。你上面一个问题里面说download.sh里面下不下来的save.ckpt-150000v2也是别人自己训练的,只不过那是别人在行人检测上训练出来的,所以之前说下不下来没关系,也没什么用。

zhwhong avatar Feb 24 '19 06:02 zhwhong

1 呜呜呜大佬你是天使!! 不过还是想问大佬用什么样的配置跑了多久呢😂 我感觉我跑了好久才跑出来那么一点东西……而且我还只扔了几个病人进去试试水hhh 要是弄出来了我都想给大佬寄四川肺片(超好吃)了哈哈哈哈哈

Asteriajojo avatar Feb 24 '19 13:02 Asteriajojo

@Asteriajojo 跑通了就好,具体的~额~我也不太记得了,那都是几年前的事儿了,应该至少也要好几个小时以上吧,我当时好像是用的Nvidia Titan X单卡跑的

zhwhong avatar Feb 25 '19 05:02 zhwhong

大佬……我胡汉三又回来了😭想在请问一下脚本跑起来了但是跑到十万多的时候就进程就莫名其妙被kill了是什么原因呢 已经两次都这样了 也没有报错啥的 qq 20190306112520 目前的配置是32内核 16g内存(羡慕大佬的Titan X) 而且我tensorflow安装的是cpu版本的 这个一定要用gpu跑吗 再次打扰大佬了

Asteriajojo avatar Mar 06 '19 03:03 Asteriajojo

额,一般情况下应该不会,只要显存和内存是够的话,也不需要Titan X,现在好多也都是用1080在跑。那个你tensorflow安装的是CPU?如果要使用GPU的话,是需要安装tensorflow-gpu的,我不知道你是怎么跑的,如果你用的cpu,会很慢。你可以程序运行时看一下CPU和GPU的使用情况,top -c和nvidia-smi可以查看

zhwhong avatar Mar 06 '19 06:03 zhwhong

top -c长这个样子 qq 20190306150618 nvidia-smi 说的没有找到指令 我瞅着网上说要装个显卡驱动什么的?(我用的是虚拟机搭的一个服务器 😂) 我之前就是用滴cpu在跑😂 就是有点慢hhh

Asteriajojo avatar Mar 06 '19 07:03 Asteriajojo

您好我也想利用这份代码做一个实验 请问能请教您一些问题吗

banshee1 avatar Mar 25 '19 06:03 banshee1

@Asteriajojo 您好 请问能请教一些您跑这个实验时的过程吗

banshee1 avatar Mar 26 '19 07:03 banshee1