MIXIAOXIN / ProjectNote

Note
0 stars 0 forks source link

修改代码后,网络训练过程中出现error: double can't be cast to long. #6

Closed MIXIAOXIN closed 1 year ago

MIXIAOXIN commented 1 year ago

RuntimeError: result type Double can't be cast to the desired output type Long Which occurs at the load source image stage. However, source images have no change.

MIXIAOXIN commented 1 year ago

错误记录: 多线程训练时出现问题,错误显示为读取训练数据时,不同线程读取的数据类型不一致;多线程模式下,打印输出时也无法准确定位到错误;单线程调试时,不出现错误. 代码错误出现在collect_func()内部,错误为数据类型不匹配的问题.

经过多次调试时,确定为迭代读取训练数据时,同一次迭代内部,不同loader上读取的数据类型的差异 具体问题定位: load数据时,一类型数据是从图像中读取,另一类型的数据从JSON数据中解析.从json中读取的数据中,每个key对应的value的长度,数据类型都应该一致; 这次的错误:只保证了长度一致,没有注意数据类型.最后,将每个key中的数据的类型预订义/强制转换后,类型保持一致后,没有出现错误.