Visualkeras is a Python package to help visualize Keras (either standalone or included in TensorFlow) neural network architectures. It allows easy styling to fit most needs. This module supports layered style architecture generation which is great for CNNs (Convolutional Neural Networks), and a graph style architecture, which works great for most models including plain feed-forward networks.
MIT License
586
stars
69
forks
source link
PIL ImageFont Compatibility Issues in Visualkeras for Neural Network Visualization with Legends [BUG] #50
I got an error while trying to visualize the neural network with legends, using the same lines of code from the main readme, here
Code:
from PIL import ImageFont
font = ImageFont.truetype("arial.ttf", 32) # using comic sans is strictly prohibited!
visualkeras.layered_view(model, legend=True, font=font)
Error:
AttributeError Traceback (most recent call last)
Cell In[7], line 4
1 from PIL import ImageFont
3 font = ImageFont.truetype("arial.ttf", 32) # using comic sans is strictly prohibited!
----> 4 visualkeras.layered_view(model, legend=True, font=font)
File c:\Users\..\Python310\lib\site-packages\visualkeras\layered.py:194, in layered_view(model, to_file, min_z, min_xy, max_z, max_xy, scale_z, scale_xy, type_ignore, index_ignore, color_map, one_dim_orientation, background_fill, draw_volume, padding, spacing, draw_funnel, shade_step, legend, font, font_color)
191 if font is None:
192 font = ImageFont.load_default()
--> 194 text_height = font.getsize("Ag")[1]
195 cube_size = text_height
197 de = 0
AttributeError: 'FreeTypeFont' object has no attribute 'getsize'
I found that in Pillow 10.0.0 they have removed the ImageFont.getsize() and suggested to use ImageFont.getbbox() or ImageFont.getlength(), when i tried using the getbbox() a little legend is appearing, but we need the complete legend right?
I got an error while trying to visualize the neural network with legends, using the same lines of code from the main readme, here
Code:
Error:
I found that in Pillow 10.0.0 they have removed the
ImageFont.getsize()
and suggested to useImageFont.getbbox()
orImageFont.getlength()
, when i tried using thegetbbox()
a little legend is appearing, but we need the complete legend right?Environment: