<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2014-11-26 21:27 GMT+01:00 Marco Ippolito <span dir="ltr"><<a href="mailto:ippolito.marco@gmail.com" target="_blank">ippolito.marco@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Ciao a tutti,<br>
<br>
ho pensato di usare il meccanismo del tcp-server - client per caricare<br>
una sola volta dei modelli piuttosto pesanti, per poi eseguire alcune<br>
operazioni di estrazione ed elaborazione.<br>
Se non si facesse così infatti, dovrei caricare questi modelli (2<br>
minuti e mezzo) ogni volta che uso le funzioni di estrazione ed<br>
elaborazione.<br>
<br></blockquote><div><br></div><div>Non sono sicuro di capire la differenza tra caricare una sola volta e ognni 2 minuti e mezzo.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Nel libro "Python CookBook 3rd Edition" a pagina 481, c'è il<br>
paragrafo: "Sending and Receiving Large Arrays":<br>
<br></blockquote><div><br></div><div>Quando invii dei dati tramite socket, il kernel effettua una copia del buffer che passi dal tuo programma.</div><div>Quando converti un array di numpy in un buffer, numpy effettua una copia allocando memoria per contenere i dati.</div><div><br></div><div>La soluzione adottata da Python è memoryview, che crea una referenza alla memoria come faresti in C.</div><div>> [...]</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">e sembrerebbe che in python 2.X non ci sia l'attribute 'cast' per il<br>
memoryview: <a href="https://docs.python.org/2/library/stdtypes.html#typememoryview" target="_blank">https://docs.python.org/2/library/stdtypes.html#typememoryview</a><br>
<br>
Avete qualche idea su come possa ovviare a questo inconveniente?<br>
<br></blockquote><div><br></div><div>L'unica che mi viene in mente è scrivere un modulo in C che crei una memoryview di un array.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Vi ringrazio per tutti gli hints.<br>
Marco<br>
<br>
PS:<br>
ho provato ad usare il built-in socket:<br>
<a href="https://docs.python.org/2/library/socket.html?highlight=socket#module-socket" target="_blank">https://docs.python.org/2/library/socket.html?highlight=socket#module-socket</a><br>
ma ho visto che i dati sono inviati e ricevuti in formato string,<br>
formato che è molto difficile ri-trasformare in array numpy<br></blockquote><div><br></div><div>Non sono stringhe, ma bytes (che in Python 2.x sono rappresentati dal tipo str). </div><div></div></div><br></div><div class="gmail_extra">Ciao  Manlio</div></div>