keras输出中间层特征值

import tensorflow as tf
from tensorflow.keras import datasets,layers,models
import matplotlib.pyplot as plt
import numpy as np
(train_images,train_labels),(test_images,test_labels) = datasets.cifar10.load_data()

train_images,test_images = train_images/255.0,test_images/255.0
print(train_images[0].shape)
print(train_labels.shape)
class_names = ['airplane','automobile','bird','cat','deer','dog','frog','horse','ship','druck']

plt.figure(figsize=(10,10))
for i in range(25):
    plt.subplot(5,5,i+1)
    plt.xticks([])
    plt.yticks([])
    plt.imshow(train_images[i])
    plt.xlabel(class_names[train_labels[i][0]])
#plt.show()

def create_model():
    model = tf.keras.Sequential()
    model.add(layers.Conv2D(32,(3,3),activation='relu',input_shape=(32,32,3)))
    model.add(layers.MaxPool2D(2,2))
    model.add(layers.Conv2D(64,(3,3),activation='relu'))
    model.add(layers.MaxPool2D(2,2))
    model.add(layers.Conv2D(64,(3,3),activation='relu'))#(4,4,64)
    model.add(layers.Flatten())
    model.add(layers.Dense(64,activation='relu'))
    model.add(layers.Dense(10))
    return model
model= create_model()
model.summary()

model.compile(optimizer='Adam',loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
              metrics=['accuracy'])

model.fit(train_images,train_labels,epochs=0,validation_split=0.2)


dense1_layer_model = tf.keras.models.Model(inputs=model.input,outputs=model.get_layer('dense_1').output)
#以这个model的预测值作为输出
print(train_images[0].shape)
dense1_output = dense1_layer_model.predict(train_images)
print(dense1_output.shape)
print(dense1_output)

猜你喜欢

转载自blog.csdn.net/weixin_41988545/article/details/112790916