Thank you for your replay. I have installed PIL-SIMD.
In my case, it is not PIL nor io. I am sorry not to mention this at first. The input is 9-channel data. I need to build another 10 more channels from these 9 original. Then send 19-channel ndarray to Transform(only totensor and norm).
There are two reasons that I do not produce those new channels to the disk before training:
1)It is a prototype. I am testing different new channels. Sometimes I would even change the number of new channels in the next hour.
2)I want to build a end-to-end model.

15146 dpnt   20   0 19.186g 3.044g 1.237g S  57.2  1.2  17:49.63 python
9050 dpnt   20   0 19.186g 1.887g  83936 R   6.6  0.8   0:00.20 python
9051 dpnt   20   0 19.186g 1.887g  83936 R   6.2  0.8   0:00.19 python
9052 dpnt   20   0 19.186g 1.887g  83936 R   5.9  0.8   0:00.18 python
9053 dpnt   20   0 19.186g 1.887g  83936 R   5.9  0.8   0:00.18 python

Above is the top info while training. As you can see,   “workers” only use 6% of cpu. Is there a way to force   workers to run faster like 50% or 100%?