如何在tensorflow中打印出中间层的特征输出1
作者:互联网
如何在tensorflow中打印出中间层的特征输出1
首先想打印出中间层的输出,需要看清出自己使用什么方式搭建的网络模型。搭建网络模型的有通过class搭建和model.add()搭建方式,每种的搭建方式有不同的结构,对应的有不同的方式输出特征层。
1、先说一下通过model.add()搭建的网络模型的中间层的特征输出方式。
首先需要在网络模型中进行定义命名。下面是一些代码,但是训练集就不放在这了。
下面展示一些
内联代码片
。
// A code block
import tensorflow as tf
from tensorflow.keras import Model
from tensorflow.keras.layers import Dense,Flatten,Conv1D,BatchNormalization,MaxPool1D
from tensorflow.keras import Sequential
from tensorflow.keras.regularizers import l2
input_shapes = x_train.shape[1:]
model = Sequential()
model.add(Conv1D(filters=16,kernel_size=64,strides=16,
padding='same',kernel_regularizer=l2(1e-4),input_shape=input_shapes,**name='Conv1D'**))
if BatchNormalization:
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPool1D(pool_size=2,strides=2))
model.add(Dense(units=100,activation='relu',kernel_regularizer=l2(1e-4)))
model.add(Activation('relu'))
model.add(Dense(units=10),activation='softmax',kernel_regularizer=l2(1e-4)))
model.compile(optimizer=tf.keras.optimizers.Adam(0.0001),
loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train,y_train,batch_size=70,epochs=10,validation_data=(x_test,y_test))
###########下面是一些打印出name='Conv1D'的输出特征
conv1d = Model(inputs=model.input,outputs=model.get_layer('Conv1D').output)
conv1d_out = conv1d.predict(x_test)#这个是x_train或者x_test
print('This is conv1d_out','conv1d_out)
###########
// An highlighted block
import tensorflow as tf
from tensorflow.keras import Model
from tensorflow.keras.layers import Dense,Flatten,Conv1D,BatchNormalization,MaxPool1D
from tensorflow.keras import Sequential
from tensorflow.keras.regularizers import l2
input_shapes = x_train.shape[1:]
model = Sequential()
model.add(Conv1D(filters=16,kernel_size=64,strides=16,
padding='same',kernel_regularizer=l2(1e-4),input_shape=input_shapes,***name='Conv1D'***))
if BatchNormalization:
model.add(BatchNormalization())
model.add(Activation('relu'))
model.add(MaxPool1D(pool_size=2,strides=2))
model.add(Dense(units=100,activation='relu',kernel_regularizer=l2(1e-4)))
model.add(Activation('relu'))
model.add(Dense(units=10),activation='softmax',kernel_regularizer=l2(1e-4)))
model.compile(optimizer=tf.keras.optimizers.Adam(0.0001),
loss='categorical_crossentropy',
metrics=['accuracy'])
model.fit(x_train,y_train,batch_size=70,epochs=10,validation_data=(x_test,y_test))
###########下面是一些打印出name='Conv1D'的输出特征
conv1d = Model(inputs=model.input,outputs=model.get_layer('Conv1D').output)
conv1d_out = conv1d.predict(x_test)#这个是x_train或者x_test
print('This is conv1d_out','conv1d_out)
###########
在第一个model.add()添加name=’'的名字,就可以打印出第一个model后的特征输出了。
根据第二个Class搭建的网络模型,随后再仔细写下。关注下序。
标签:keras,打印,conv1d,add,import,中间层,tensorflow,model 来源: https://blog.csdn.net/qq_38939498/article/details/116859834