Closed zhang-qiang-github closed 4 years ago
您好,我的环境没有出现这个问题,我的配置在requirement的文件中。 报错是指转成array数组时,元素不一致;建议看一下数据预处理的部分。
非常感谢您的回复。确实是包的版本的问题,换成跟你一样的版本后,就没问题了。 另外,我还有一个问题需要请教一下您。我现在有一个项目,实际上是血管的分段问题。血管你可以理解为几根线,然后需要分成不同的段。这个问题,抽象一下,可以理解为不同的火柴人,这些火柴人由几根线表示,我需要自动识别火柴人的关键点。比如说,手腕,肘,膝盖,脚踝,脖子等。火柴人有不同的动作,手臂有可能是弯的,有可能是直的。不同火柴人的手的长短也不一样,而且有些火柴人可能缺胳膊少腿。我上面说的火柴人的所有情况,在血管上都是一样的情况,血管会有不同的形态,而且有些人的血管也会少掉,但是与火柴人一样,大体上形态是固定的。 针对上面的这个问题,我希望用图卷积神经网络来做。我把火柴人做出图输入网络,输入不同的火柴人进行训练,火柴人上的每个点都识别成手,大腿等。但是,问题在于,网络一直不收敛,波动比较大。针对这个问题,您有什么建议吗? 另外,您觉得我目前的做法好嘛?我现在是把每个点进行分类,是不是可以只检测出关键点?比如如果识别出了手腕和肘,那么这两个点之间的部分就是小臂。您觉得怎么做好一点? 感谢!期待得到您的建议!
您好,这个问题还蛮有意思的 关于网络不收敛,你可以尝试增加模型复杂度和训练样本数,以及减少学习速率 您的描述中,血管长度似乎没有表示在图中 另外使用图卷积最好能有节点的feature 仅供参考~
图的边就是两个点的距离,血管的长度,就要看不同点之间的边的累加。我这里节点的feature就是坐标。我的图暂时是这样的。
另外,我目前的做法,是每一个点都分类。对每个点分类的话,就会出现一种情况,就是火柴人的小腿下面,识别出了胳膊,这种情况。您觉得是不是只识别出关键点比较好?如果想只识别关键点的话,您觉得怎么做比较合适?
另外,您觉得这个问题,用图神经网络来做,是不是合适?或者有没有其他的建议?
可以把血管长度的倒数作为节点的边权值试试。 根据你的描述,柴人的小腿下面识别出了胳膊,应该是坐标作为feature不合适,因为坐标与节点类别没有很大关联,即使坐标相近,label也会不同。 Graph embedding 也能用于节点分类,例如deepwalk,node2vec算法。
非常感谢你的建议,我会去尝试一下deepwalk和node2vec算法。
另外,为什么是把血管长度的倒数作为节点的边权值?你说的,应该是当前点到起始点的具体,当做点的特征吧?我这里的边权值,是两个点之间的距离。
不客气,一般图中点之间的边权值越大,就认为这两个点有相似的label可能性越大。 你考虑下加入血管长度是对分类有什么作用,越长越相似还是越短越相似,或者更复杂的关系
还有就是这个拐弯这种信息,能加进去吗?比如说,手臂拐弯的那个点,就很有可能是肘。“曲率”这种信息能加进去吗?但是,又不能单纯的计算曲率,因为一个点可能有分叉,这个时候就没法计算曲率了。
可以加入作为节点的feature试试,看加入是否有利于分类
直接运行代码的时候,报错:setting an array element with a sequence
我的环境是: win10 python 3.7 tensorflow 1.14.0 keras 2.3.1
另外,能否加个QQ请教一下?我的QQ是:2363405977