GITHUB: https://github.com/tonybeltramelli/pix2code
操作流程见github,非常详细。
一路无话,在公司用 1070训,报
python3 ./train.py ../datasets/web/training_set ../bin
Using TensorFlow backend. Loading data... Generating sparse vectors... Dataset size: 143741 Vocabulary size: 19 Input shape: (256, 256, 3) Output size: 19 Convert arrays... Traceback (most recent call last): File "./train.py", line 66, in <module> run(input_path, output_path, is_memory_intensive=use_generator, pretrained_model=pretrained_weigths) File "./train.py", line 24, in run dataset.convert_arrays() File "/root/code/pix2code/model/classes/dataset/Dataset.py", line 82, in convert_arrays self.input_images = np.array(self.input_images) MemoryError
nvidia-smi 了下,发现有个进程占了2G显存。kill 之,重试还报一样的错误。
重新看了下 github 上的 readme
解决方案,用下面这个语句。也是官方推荐的train方式,之前没仔细看。
python3 ./train.py ../datasets/web/training_set ../bin 1
开始非常愉快的训练了。。。1080ti 大概 18分钟1轮,默认设定为 10轮。
一夜无话。。。。到早上终于训练好了
截了一张博客的图
生成 GUI
python3 ./sample.py ../bin pix2code 1.jpg ../code
生成的GUI,似乎生成的是它演示的哪个页面。不是我提供的图。。奇怪。重新训一下试试。
header{ btn-inactive,btn-active } row{ single{ small-title,text,btn-green } } row{ quadruple{ small-title,text,btn-orange } quadruple{ small-title,text,btn-orange } quadruple{ small-title,text,btn-orange } quadruple{ small-title,text,btn-orange } } row{ double{ small-title,text,btn-orange } double{ small-title,text,btn-orange } }
忘了加 python3 ,默认用 python2 训完了报错
Traceback (most recent call last): File "./train.py", line 66, in <module> run(input_path, output_path, is_memory_intensive=use_generator, pretrained_m odel=pretrained_weigths) File "./train.py", line 51, in run model.fit_generator(generator, steps_per_epoch=steps_per_epoch) File "/home/endler/code/pix2code/model/classes/model/pix2code.py", line 70, in fit_generator self.save() File "/home/endler/code/pix2code/model/classes/model/AModel.py", line 18, in s ave self.model.save_weights("{}/{}.h5".format(self.output_path, self.name)) File "/usr/local/lib/python2.7/dist-packages/keras/engine/topology.py", line 2 580, in save_weights raise ImportError('`save_weights` requires h5py.') ImportError: `save_weights` requires h5py.
哭死,python2.7 没装 h5py。。。还得重训一次。。。。
gogogo,我就不信了。。。
又报这个,不过 权重文件已经生成了。
Exception ignored in: <bound method BaseSession.__del__ of <tensorflow.python.client.session.Session object at 0x7f3f6f67ae80>> Traceback (most recent call last): File "/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py", line 696, in __del__ TypeError: 'NoneType' object is not callable
反复试验了几次,貌似它只能识别 demo 哪几张图。ㄟ( ▔, ▔ )ㄏ