I want to embed a nnv render in flask but my code semms to not be rendering the neural-network diagram.
My code:
from nnv import NNV
layersList = [
{"title":"input", "units": 3, "color": "darkBlue"},
{"title":"hiddennlayer", "units": 3},
{"title":"output", "units": 6,"color": "darkBlue"},
]
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return f"{NNV(layersList).render()}"
if __name__ == '__main__':
app.run()
Advertisement
Answer
The problem is that matplotlib is used to plot the neural network graph; in order to return an image as an HTTP response, you need to convert the plot to bytes.
import io
from flask import Flask, Response
@app.route('/')
def index():
output = io.BytesIO()
NNV(layersList).render(save_to_file=output)
return Response(output.getvalue(), mimetype='image/png')