transformer注意力权重系数绘图

参考绘制tsne图,首先将模型中的注意力权重导出,因为我的模型中L=2,所以导出两层

python 复制代码
# plot_weight
weight_model_layer0 = Model(inputs=model.inputs, outputs=model.get_layer('transformer_0').output)
weight_output_layer0 = weight_model_layer0.predict(X_test)
np.save('weight_output_layer0', weight_output_layer0[1])

weight_model_layer1 = Model(inputs=model.inputs, outputs=model.get_layer('transformer_1').output)
weight_output_layer1 = weight_model_layer1.predict(X_test)
np.save('weight_output_layer1', weight_output_layer1[1])

然后,搜到一些使用seaborn绘制热力图的代码,其中我查的比较多的问题是

1、如何修改colorbar字体的大小

2、如何修改xy轴labelsize

3、如何给子图添加标题

就是cbar=False,再重新绘制一个colorbar

参考python使用seaborn画热力图中设置colorbar图例刻度字体大小_seaborn 设置colorbar刻度-CSDN博客

python 复制代码
# 绘制热力图
hm1 = sns.heatmap(attention_per_head_0[0:40, 0:40], cbar=False, cbar_kws={'shrink': 0.8}, square=True, xticklabels='auto', yticklabels='auto')
# 修改xy轴labelsize
hm1.tick_params(labelsize=8)
# 设置标题
hm1.set_title('layer1_head_{}'.format(4), size=12)
# 显示colorbar
cb = hm1.figure.colorbar(hm1.collections[0])  
# 修改colorbar的labelsize
cb.ax.tick_params(labelsize=8)
相关推荐
我的运维人生几秒前
Python技术深度探索:从基础到进阶的实践之旅(第一篇)
开发语言·python·运维开发·技术共享
Bonne journée2 分钟前
‌在Python中,print(f‘‘)是什么?
java·开发语言·python
iiimZoey26 分钟前
Dit架构 diffusion范式分类+应用
人工智能·python
R三哥哥啊27 分钟前
【树莓派5B】IO串口通信使用
python
互联网时光机1 小时前
python写的window小工具-一键设置ip自动获取ip
网络·windows·python
SCBAiotAigc1 小时前
VSCode debug模式无法跳转进入内置模块
人工智能·vscode·python
call_me_wangcheng1 小时前
django创建项目
python·django
VXbishe1 小时前
(附源码)基于springboot的“我来找房”微信小程序的设计与实现-计算机毕设 23157
java·python·微信小程序·node.js·c#·php·课程设计
chusheng18401 小时前
Python 如何使用 multiprocessing 模块创建进程池
python·信息可视化·matplotlib
猿小猴子1 小时前
Python3 爬虫 中间人爬虫
开发语言·爬虫·python