我试图在训练期间将图像的文件名附加到csv文件中,但遇到了一个错误。我可以打印值,但由于某些原因无法附加到csv文件。这是完整的代码:
File "train_filename.py", line 140, in <module>
names_preds.append() + 'n'
AttributeError: 'numpy.ndarray' object has no attribute 'append'
with open('preds_base_model_teste1016.csv','a') as fd:
#dict_writer = csv.writer(fd)
#dict_writer.writerow('Target' + 'n')
#dict_writer.writerow( ','.join(map(str, preds.detach().tolist())) + 'n')
#dict_writer.writerow('Prediction' + 'n')
#dict_writer.writerow( ','.join(map(str, targets.detach().tolist())) + 'n')
#fd.write('Target' + 'n')
fd.write(','.join(map(str, preds.detach().tolist())) + 'n')
#fd.write('Prediction' + 'n')
fd.write( ','.join(map(str, targets.detach().tolist())) + 'n')
#fd.write('Image_Name' + 'n')
np.append(paths)
#fd.write([filename])
使用concatenate
而不是文档中所述的append
。
但是,看起来您确实没有试图向数组中添加任何内容。
你应该这样使用它:
names_preds.concatenate(some_value)
,其中concatenate
中的值是要添加到数组中的值。
要将numpy数组保存到csv文件,有一种更简单的方法:
numpy.savetxt("foo.csv", names_preds, delimiter=",")
请参阅此答案中的详细信息。
更换您的线路:
np.append(paths)
带有
with open('preds_base_model_teste1016.csv','a') as fd:
np.savetxt(fd, names_preds, delimiter=",")
这将把所有路径附加到您已经指定的文件中。
更新:
根据你在评论中的问题,要将多个数组放在一起,这样你就可以得到列,你可以尝试:
with open('preds_base_model_teste1016.csv','a') as fd:
np.savetxt(fd, list(zip(a,b,c)), delimiter=",")
其中a
、b
和c
是要作为列的数组。