fchollet / hualos Goto Github PK
View Code? Open in Web Editor NEWKeras Total Visualization project
License: MIT License
Keras Total Visualization project
License: MIT License
Dear,
I tried to run the call back method in python3.5.
It did not work and I think the reason is following line.
api.py
lines = ["%s: %s" % (v, k)
for k, v in self.desc_map.iteritems() if k]
In python3.x, iteritems renamed items. I wonder if you could fix this issue.
Best,
Takayuki
AttributeError: 'dict' object has no attribute 'iteritems'
2019-08-01T04:16:32Z {'REMOTE_ADDR': '::1', 'REMOTE_PORT': '50752', 'HTTP_HOST': 'localhost:9000', (hidden keys: 28)} failed with AttributeError
I'm trying to make the hualos server be public, so I can have a machine running the training and the server, and be able to remotely access the hualos landing page.
I'd rather not tunnel the localhost to any IP, but I'm trying to modify the WSGI server to make it publicly visible to the LAN
I've modified api.py line 72 like so:
server = WSGIServer(('0.0.0.0', 9999), app)
But the server still starts on the localhost.
I tried to connect to the server anyways(of course allowing incoming connections to the machine's port 9999), but it does not work
I've also switched to debug=False
so code cannot be executed on the server. This will stay on my LAN, but I toggled it for good measure
Thanks for a great add-on to the Keras library!
After trying it out I found that the graph displays only the first point and doesn't get updated.
The graph displayed at the localhost shows only the first point, however it doesn't get updated when a new point is being pushed to the server.
In the command line where I run python api.py I can verify that the updates are received correctly by the callback but the graph doesn't display any updates and remains static:
127.0.0.1 - - [2015-09-25 08:00:09] "POST /publish/epoch/end/ HTTP/1.1" 200 117 0.002720
127.0.0.1 - - [2015-09-25 08:00:22] "POST /publish/epoch/end/ HTTP/1.1" 200 117 0.000664
127.0.0.1 - - [2015-09-25 08:00:35] "POST /publish/epoch/end/ HTTP/1.1" 200 117 0.000650
127.0.0.1 - - [2015-09-25 08:00:47] "POST /publish/epoch/end/ HTTP/1.1" 200 117 0.000741
127.0.0.1 - - [2015-09-25 08:00:59] "POST /publish/epoch/end/ HTTP/1.1" 200 117 0.000679
Awesome project!
I use Keras 0.32 with theano backend and add the callback in model.fit_generator() function, but nothing appears on my webpage. Did I do anything wrong? I did get some messages on the command line:
127.0.0.1 - - [2016-03-25 17:00:22] "GET /static/js/c3.min.js HTTP/1.1" 304 191 0.000501
127.0.0.1 - - [2016-03-25 17:00:51] "GET / HTTP/1.1" 200 1717 0.000501
127.0.0.1 - - [2016-03-25 17:00:51] "GET /static/css/c3.min.css HTTP/1.1" 304 189 0.000677
127.0.0.1 - - [2016-03-25 17:00:51] "GET /static/js/d3.min.js HTTP/1.1" 304 191 0.000504
127.0.0.1 - - [2016-03-25 17:00:51] "GET /static/js/jquery.min.js HTTP/1.1" 304 188 0.000452
127.0.0.1 - - [2016-03-25 17:00:51] "GET /static/css/bootstrap.min.css HTTP/1.1" 304 191 0.000442
127.0.0.1 - - [2016-03-25 17:00:51] "GET /static/js/c3.min.js HTTP/1.1" 304 191 0.000434
Hello, When I use this tool, I always got an exception:
Warning: could not reach RemoteMonitor root server at 192.168.1.2:9000
Details: I ran the python api.py on the machine with ip 192.168.1.2, and the server started normally, And then run the model training on the other machine (with gpu, but no monitor), by calling callback:
remote = RemoteMonitor(root='192.168.1.2:9000')
I think it may be possible to make the Keras visualize_util
compatible with Python 3 by using NetworkX instead of PyDot. I do not have much experience with either, but it seems that NetworkX can provide the same GraphViz functionality and more while being better maintained and updated.
Here is the error:
127.0.0.1 - - [2017-04-08 00:08:57] "POST /publish/epoch/end/ HTTP/1.1" 500 161 0.000000
Traceback (most recent call last):
File "C:\Anaconda3\lib\site-packages\gevent\pywsgi.py", line 884, in handle_one_response
self.run_application()
File "C:\Anaconda3\lib\site-packages\gevent\pywsgi.py", line 870, in run_application
self.result = self.application(self.environ, self.start_response)
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 2000, in __call__
return self.wsgi_app(environ, start_response)
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1991, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1567, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\Anaconda3\lib\site-packages\flask\_compat.py", line 33, in reraise
raise value
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1988, in wsgi_app
response = self.full_dispatch_request()
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1642, in full_dispatch_request
response = self.make_response(rv)
File "C:\Anaconda3\lib\site-packages\flask\app.py", line 1746, in make_response
rv = self.response_class.force_type(rv, request.environ)
File "C:\Anaconda3\lib\site-packages\werkzeug\wrappers.py", line 847, in force_type
response = BaseResponse(*_run_wsgi_app(response, environ))
File "C:\Anaconda3\lib\site-packages\werkzeug\test.py", line 871, in run_wsgi_app
app_rv = app(environ, start_response)
TypeError: 'dict' object is not callable
{'CONTENT_LENGTH': '164',
'CONTENT_TYPE': 'application/json',
'GATEWAY_INTERFACE': 'CGI/1.1',
'HTTP_ACCEPT': 'application/json',
'HTTP_ACCEPT_ENCODING': 'gzip, deflate',
'HTTP_CONNECTION': 'keep-alive',
'HTTP_HOST': 'localhost:9000',
'HTTP_USER_AGENT': 'python-requests/2.12.4',
'PATH_INFO': '/publish/epoch/end/',
'QUERY_STRING': '',
'REMOTE_ADDR': '127.0.0.1',
'REMOTE_PORT': '63842',
'REQUEST_METHOD': 'POST',
'SCRIPT_NAME': '',
'SERVER_NAME': 'GNELTSG5507WTZ.nala.roche.com',
'SERVER_PORT': '9000',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'gevent/1.1 Python/3.5',
'werkzeug.request': <Request 'http://localhost:9000/publish/epoch/end/' [POST]>,
'wsgi.errors': <_io.TextIOWrapper name='<stderr>' mode='w' encoding='cp437'>,
'wsgi.input': <gevent.pywsgi.Input object at 0x0000000004A8DA08>,
'wsgi.multiprocess': False,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)} failed with TypeError
Any advise?
When I run python api.py, and start keras program with remote callbacks, I got these message:
::ffff:127.0.0.1 - - [2017-02-14 11:51:15] "POST //publish/epoch/end/ HTTP/1.1" 500 161 0.000479
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/gevent/pywsgi.py", line 936, in handle_one_response
self.run_application()
File "/usr/local/lib/python2.7/dist-packages/gevent/pywsgi.py", line 909, in run_application
self.result = self.application(self.environ, self.start_response)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1994, in call
return self.wsgi_app(environ, start_response)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1985, in wsgi_app
response = self.handle_exception(e)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1540, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1982, in wsgi_app
response = self.full_dispatch_request()
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1615, in full_dispatch_request
return self.finalize_request(rv)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1630, in finalize_request
response = self.make_response(rv)
File "/usr/local/lib/python2.7/dist-packages/flask/app.py", line 1740, in make_response
rv = self.response_class.force_type(rv, request.environ)
File "/usr/local/lib/python2.7/dist-packages/werkzeug/wrappers.py", line 847, in force_type
response = BaseResponse(*_run_wsgi_app(response, environ))
File "/usr/local/lib/python2.7/dist-packages/werkzeug/test.py", line 871, in run_wsgi_app
app_rv = app(environ, start_response)
TypeError: 'dict' object is not callable
Tue Feb 14 11:51:15 2017 {'REMOTE_PORT': '39644', 'HTTP_HOST': 'localhost:9000', 'REMOTE_ADDR': '::ffff:127.0.0.1', (hidden keys: 23)} failed with TypeError
I checked my gevent and flask version:
So I modifed api.py like these:
@app.route("/publish/epoch/end/", methods=['POST'])
def publish():
#payload = request.form.get('data')
payload = unquote(request.data.split('=')[1]).replace('+','')
try:
data = json.loads(payload)
except:
return {'error':'invalid payload'}
def notify():
msg = str(time.time())
for sub in subscriptions[:]:
sub.put(payload)
gevent.spawn(notify)
return "OK"
Then everything goes OK
I have tried such amazing visualization tool when it was born month ago and it worked well. After I update keras (git pull) recently. The same code run into error after one epoch.
Traceback (most recent call last):
File "keras_mnist.py", line 93, in <module>
cnn = model.fit(X_train, Y_train, validation_data = (X_valid, Y_valid), batch_size = batch_size, show_accuracy = show_accuracy, callbacks=[history, checkpointer, remote], nb_epoch = nb_epoch)
File "build/bdist.linux-x86_64/egg/keras/models.py", line 465, in fit
File "build/bdist.linux-x86_64/egg/keras/models.py", line 228, in _fit
File "build/bdist.linux-x86_64/egg/keras/callbacks.py", line 39, in on_epoch_end
File "build/bdist.linux-x86_64/egg/keras/callbacks.py", line 258, in on_epoch_end
AttributeError: 'RemoteMonitor' object has no attribute 'logs'
@fchollet What shall I do?
I found these idea very interesting and helpful for continuous feedback and visualization. I am interested in contributing to this framework. I have few ideas and features to be added in the current project. Where can I get in touch with one of the contributors if at all there is any actively contributing.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.