ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

如何在tensorflow中打印出中间层的特征输出1

2021-05-15 20:00:09  阅读:242  来源: 互联网

标签:keras 打印 conv1d add import 中间层 tensorflow model


如何在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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有