迁移学习特征变化散点图代码
时间: 2023-07-01 11:28:55 浏览: 185
散点图代码
以下是一个简单的迁移学习特征变化散点图的 Python 代码示例:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.manifold import TSNE
from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications.resnet50 import preprocess_input
from tensorflow.keras.models import Model
from tensorflow.keras.applications.resnet50 import ResNet50
# 加载 ResNet50 模型(不包括最后一层全连接层)
base_model = ResNet50(weights='imagenet', include_top=False)
# 定义新模型,输出 ResNet50 中最后一个卷积层的特征
model = Model(inputs=base_model.input, outputs=base_model.get_layer('avg_pool').output)
# 加载图片并进行预处理
img_path = 'example.jpg'
img = image.load_img(img_path, target_size=(224, 224))
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
# 提取特征
features = model.predict(x)
# 使用 t-SNE 将特征降维到二维
tsne = TSNE(n_components=2, random_state=0)
tsne_features = tsne.fit_transform(features)
# 绘制散点图
plt.scatter(tsne_features[:,0], tsne_features[:,1])
plt.show()
```
该代码将加载一个预训练的 ResNet50 模型,然后使用该模型提取一张图片的特征。接下来,使用 t-SNE 算法将特征降维到二维,并将其绘制成散点图。这样可以可视化特征表示的变化,从而帮助我们理解不同数据集之间的相似性和差异性。
阅读全文