提供网站建设定制,做专业网站设计多少钱,新闻发布会,电子商务网站建设和推广论文文章目录 Visualkeras介绍下载安装代码示例1、导入必要的库2、创建VGG16神经网络模型3、可视化神经网络结构4、完整代码5、使用教程 可视化自己创建的神经网络结构1、导入要的库2、创建自己的神经网络模型3、可视化神经网络结构图4、完整代码 Visualkeras介绍
Visualkeras是一… 文章目录 Visualkeras介绍下载安装代码示例1、导入必要的库2、创建VGG16神经网络模型3、可视化神经网络结构4、完整代码5、使用教程 可视化自己创建的神经网络结构1、导入要的库2、创建自己的神经网络模型3、可视化神经网络结构图4、完整代码 Visualkeras介绍
Visualkeras是一个Python包用于帮助可视化Keras独立或包含在tensorflow中神经网络架构。它允许简单的造型来满足大多数需求。该模块支持分层风格的架构生成这对CNN卷积神经网络非常有用。 下载安装
Visualkeras源代码链接https://github.com/paulgavrikov/visualkeras
使用清华源安装Visualkeras
pip install visualkeras -i https://pypi.tuna.tsinghua.edu.cn/simple代码示例
使用CNN经典网络VGG16作为示例可视化神经网络结构。
1、导入必要的库
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense, Flatten, Conv2D, Dropout, MaxPooling2D, InputLayer, ZeroPadding2D
from collections import defaultdict
import visualkeras
from PIL import ImageFont2、创建VGG16神经网络模型
# create VGG16
image_size 224
model Sequential()
model.add(InputLayer(input_shape(image_size, image_size, 3)))model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(64, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(64, activationrelu, kernel_size(3, 3)))
model.add(visualkeras.SpacingDummyLayer())model.add(MaxPooling2D((2, 2), strides(2, 2)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(128, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(128, activationrelu, kernel_size(3, 3)))
model.add(visualkeras.SpacingDummyLayer())model.add(MaxPooling2D((2, 2), strides(2, 2)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(256, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(256, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(256, activationrelu, kernel_size(3, 3)))
model.add(visualkeras.SpacingDummyLayer())model.add(MaxPooling2D((2, 2), strides(2, 2)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(512, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(512, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(512, activationrelu, kernel_size(3, 3)))
model.add(visualkeras.SpacingDummyLayer())model.add(MaxPooling2D((2, 2), strides(2, 2)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(512, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(512, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(512, activationrelu, kernel_size(3, 3)))
model.add(MaxPooling2D())
model.add(visualkeras.SpacingDummyLayer())model.add(Flatten())model.add(Dense(4096, activationrelu))
model.add(Dropout(0.5))
model.add(Dense(4096, activationrelu))
model.add(Dropout(0.5))
model.add(Dense(1000, activationsoftmax))3、可视化神经网络结构
# Now visualize the model!color_map defaultdict(dict)
color_map[Conv2D][fill] orange
color_map[ZeroPadding2D][fill] gray
color_map[Dropout][fill] pink
color_map[MaxPooling2D][fill] red
color_map[Dense][fill] green
color_map[Flatten][fill] tealfont ImageFont.truetype(./Arial.ttf, 32)visualkeras.layered_view(model, to_file./figures/vgg16.png, type_ignore[visualkeras.SpacingDummyLayer])
visualkeras.layered_view(model, to_file./figures/vgg16_legend.png, type_ignore[visualkeras.SpacingDummyLayer],legendTrue, fontfont)
visualkeras.layered_view(model, to_file./figures/vgg16_spacing_layers.png, spacing0)
visualkeras.layered_view(model, to_file./figures/vgg16_type_ignore.png,type_ignore[ZeroPadding2D, Dropout, Flatten, visualkeras.SpacingDummyLayer])
visualkeras.layered_view(model, to_file./figures/vgg16_color_map.png,color_mapcolor_map, type_ignore[visualkeras.SpacingDummyLayer])
visualkeras.layered_view(model, to_file./figures/vgg16_flat.png,draw_volumeFalse, type_ignore[visualkeras.SpacingDummyLayer])
visualkeras.layered_view(model, to_file./figures/vgg16_scaling.png,scale_xy1, scale_z1, max_z1000, type_ignore[visualkeras.SpacingDummyLayer])4、完整代码
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense, Flatten, Conv2D, Dropout, MaxPooling2D, InputLayer, ZeroPadding2D
from collections import defaultdict
import visualkeras
from PIL import ImageFont# create VGG16
image_size 224
model Sequential()
model.add(InputLayer(input_shape(image_size, image_size, 3)))model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(64, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(64, activationrelu, kernel_size(3, 3)))
model.add(visualkeras.SpacingDummyLayer())model.add(MaxPooling2D((2, 2), strides(2, 2)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(128, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(128, activationrelu, kernel_size(3, 3)))
model.add(visualkeras.SpacingDummyLayer())model.add(MaxPooling2D((2, 2), strides(2, 2)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(256, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(256, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(256, activationrelu, kernel_size(3, 3)))
model.add(visualkeras.SpacingDummyLayer())model.add(MaxPooling2D((2, 2), strides(2, 2)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(512, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(512, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(512, activationrelu, kernel_size(3, 3)))
model.add(visualkeras.SpacingDummyLayer())model.add(MaxPooling2D((2, 2), strides(2, 2)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(512, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(512, activationrelu, kernel_size(3, 3)))
model.add(ZeroPadding2D((1, 1)))
model.add(Conv2D(512, activationrelu, kernel_size(3, 3)))
model.add(MaxPooling2D())
model.add(visualkeras.SpacingDummyLayer())model.add(Flatten())model.add(Dense(4096, activationrelu))
model.add(Dropout(0.5))
model.add(Dense(4096, activationrelu))
model.add(Dropout(0.5))
model.add(Dense(1000, activationsoftmax))# Now visualize the model!color_map defaultdict(dict)
color_map[Conv2D][fill] orange
color_map[ZeroPadding2D][fill] gray
color_map[Dropout][fill] pink
color_map[MaxPooling2D][fill] red
color_map[Dense][fill] green
color_map[Flatten][fill] tealfont ImageFont.truetype(./Arial.ttf, 32)visualkeras.layered_view(model, to_file./figures/vgg16.png, type_ignore[visualkeras.SpacingDummyLayer])
visualkeras.layered_view(model, to_file./figures/vgg16_legend.png, type_ignore[visualkeras.SpacingDummyLayer],legendTrue, fontfont)
visualkeras.layered_view(model, to_file./figures/vgg16_spacing_layers.png, spacing0)
visualkeras.layered_view(model, to_file./figures/vgg16_type_ignore.png,type_ignore[ZeroPadding2D, Dropout, Flatten, visualkeras.SpacingDummyLayer])
visualkeras.layered_view(model, to_file./figures/vgg16_color_map.png,color_mapcolor_map, type_ignore[visualkeras.SpacingDummyLayer])
visualkeras.layered_view(model, to_file./figures/vgg16_flat.png,draw_volumeFalse, type_ignore[visualkeras.SpacingDummyLayer])
visualkeras.layered_view(model, to_file./figures/vgg16_scaling.png,scale_xy1, scale_z1, max_z1000, type_ignore[visualkeras.SpacingDummyLayer])5、使用教程
创建一个项目文件夹例如Project在创建的项目文件夹Project 中新建一个文件夹文件夹名为 figures 通过链接https://ultralytics.com/assets/Arial.ttf下载 Arial.ttf 字体文件将下载的 Arial.ttf 字体文件 放在 项目文件夹Project 下在 项目文件夹Project 下新建一个py文件如examples.py将上述的完整代码复制到 examples.py 中运行examples.py在 figures文件夹中查看生成的可视化图vgg16.png vgg16_legend.png 可视化自己创建的神经网络结构
1、导入要的库
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras import models,layers
from tensorflow.keras.layers import Conv2D, MaxPooling2D, BatchNormalization, Flatten, Dense
from tensorflow.keras.callbacks import Callback, ModelCheckpoint
import visualkeras2、创建自己的神经网络模型
将以下代码替换为自己的Keras / TensorFlow 神经网络结构。
model models.Sequential()
# 第一层卷积层
model.add(layers.Conv2D(32, (3, 3), activationrelu, input_shape(48, 48, 1))) # 假设输入图像大小为48x481为灰度图
model.add(layers.MaxPooling2D((2, 2)))
# 第二层卷积层
model.add(layers.Conv2D(64, (3, 3), activationrelu))
model.add(layers.MaxPooling2D((2, 2)))
# 展平层
model.add(layers.Flatten())
# 全连接层
model.add(layers.Dense(64, activationrelu))
# 输出层假设分类任务有7个类别
model.add(layers.Dense(7, activationsoftmax))3、可视化神经网络结构图
显示层风格图
visualkeras.layered_view(model).show() # 只显示图
# visualkeras.layered_view(model, to_fileoutput.png).show() # 保存和显示图显示带有标签的层风格图
from PIL import ImageFont
font ImageFont.truetype(./Arial.ttf, 32)visualkeras.layered_view(model, legendTrue, fontfont).show() # 只显示图
# visualkeras.layered_view(model, to_fileoutput_legend.png, legendTrue, fontfont).show() # 保存和显示图4、完整代码
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras import models,layers
from tensorflow.keras.layers import Conv2D, MaxPooling2D, BatchNormalization, Flatten, Dense
from tensorflow.keras.callbacks import Callback, ModelCheckpoint
import visualkeras# 可以将下面这部分创建模型的代码更换你自己的神经网络结构
model models.Sequential()
# 第一层卷积层
model.add(layers.Conv2D(32, (3, 3), activationrelu, input_shape(48, 48, 1))) # 假设输入图像大小为48x481为灰度图
model.add(layers.MaxPooling2D((2, 2)))
# 第二层卷积层
model.add(layers.Conv2D(64, (3, 3), activationrelu))
model.add(layers.MaxPooling2D((2, 2)))
# 展平层
model.add(layers.Flatten())
# 全连接层
model.add(layers.Dense(64, activationrelu))
# 输出层假设分类任务有7个类别
model.add(layers.Dense(7, activationsoftmax))visualkeras.layered_view(model).show() # 只显示图
# visualkeras.layered_view(model, to_fileoutput.png).show() # 保存和显示图from PIL import ImageFont
font ImageFont.truetype(./Arial.ttf, 32)visualkeras.layered_view(model, legendTrue, fontfont).show() # 只显示图
# visualkeras.layered_view(model, to_fileoutput_legend.png, legendTrue, fontfont).show() # 保存和显示图