Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Topics - tommyb1992

Pagine: [1] 2 3 ... 6
1
Base / [Win/py3] File aperti da diversi programmi
« il: Febbraio 07, 2019, 10:17 »
Ho un software di terze parti che mi crea e aggiorna files, io dovrei copiarli e aggiornare le copie evitando problemi di concorrenza.

Mi date una mano e mi elencate quali funzioni utilizzare?

Grazie

2
Base / Cosa succede in questo caso con imp.load_source?
« il: Gennaio 14, 2019, 13:42 »

while 1:
  # cerca files .py in una cartella
  for fileName in allFilesFromFolder:
    # se il file non esiste lo carica dinamicamente in un dizionario
    if fileName not in loadedFiles:
      loadedFiles[name] = imp.load_source(name, fileName )


Ipotizzando di aggiungere un nuovo file .py alla cartella, potrebbe esiste il caso nel quale non essendo ancora stato tutto copiato/scaricato/trasferito load_source provi ad agire su un file incompleto e quindi terminarmi il programma con un raise?

Grazie

3
Altri linguaggi / Integrare pesantemente Python e C++
« il: Gennaio 01, 2019, 15:37 »
Dovrei poter agire a 360° integrando Python e C++ e vorrei evitare di utilizzare ctypes perchè voglio avere "assoluta libertà di movimento".
Voi che siete più esperti mi potete consigliare la via più profittevole?

Grazie

4
Altri linguaggi / Convertire Lua code in Python
« il: Dicembre 22, 2018, 12:56 »
Ho questa riga in Lua:
-- matrix 3x2x6
matrix[{{}, 1, {}}] = other_matrix:clone():repeatTensor(4, 1)


Come la converto in python usando PyTorch?

Grazie

5
Base / [Risolto]Come faccio questa cosa con le classi?
« il: Dicembre 12, 2018, 20:15 »
class Node(object):
    # [...]
    def expand(self, state):
        key = hash(state)
        if self[key] is None:
            self[key] = Node(state, self, self.depth+1)

        self.childs.append(self[key])

class MiniMaxNode(BaseNode):
    def __init__(self, state, parent=None, depth=0):
        super().__init__(state, parent, depth)

    def expand(self, state):
        super().expand(state)
        # [...]


E nel momento nel quale la estendo, invece di richiamare la riga:
"self[key] = Node(state, self, self.depth+1)"
vorrei invece richiamare:
"self[key] = MiniMaxNode(state, self, self.depth+1)"
senza dover sovrascrivere tutta il metodo, perchè sono certo che funzionerà sempre allo stesso modo, al massimo ci aggiungo codice ma di certo non tolgo da quel metodo

6
Base / [risolto][Windows] .bat con anaconda
« il: Ottobre 30, 2018, 18:21 »
vorrei avere un bat che mi carica uno script con un environment di anaconda... come faccio?

grazie

7
Base / Algoritmo TDbackpropr per tic tac toe
« il: Ottobre 19, 2018, 18:08 »
Ho implementato un algoritmo di Q-learning per la risoluzione del semplice gioco TicTacToe, essendo a stati finiti ho utilizzato una tabella per rappresentare tutti gli stati,   e convergeva verso l'equilibrio di nash in circa (se non sbaglio) 10K giochi giocando contro se stesso e imparando a giocare perfetto.

Ora ho provato a usare una rete neurale come approssimatore d'errore seguendo questi articoli (che sono per il gioco del backgammon, ma siccome mi interessa più di tanto il backgammon quanto l'applicazione dell'algoritmo io l'ho reimplementato sul TicTacToe)
 - https://www.cs.cornell.edu/boom/2001sp/Tsinteris/gammon.htm
 - http://modelai.gettysburg.edu/2013/tdgammon/pa4.pdf
 - https://web.stanford.edu/group/pdplab/pdphandbook/handbookch10.html
 - http://www.incompleteideas.net/td-backprop-pseudo-code.text

La seconda formula del secondo link l'ho modificata togliendo la sommatoria.

E non riesco a capire neanche come applicare questa:


Oltre al fatto che non riesco a capire anche come sia possibile che applichi il discount rate visto che somma sempre k.

Ma vabbe... dopo molte prove l'algoritmo non funziona:
 - NeuralNetwork.py
 - TicTacToe.py
 - train.py

Grazie

8
Base / requests non riesco a uploadare 2 file contemporaneamnte
« il: Settembre 19, 2018, 09:47 »
                url = 'http://192.168.1.4:888/upload.php'
                path = r'C:\Users\Tomas\Pictures\Test\\'
                f1 = path + 'cane.jpg'
                f2 = path + 'gatto.jpg'
                files = [
                    ('f', ('1.png', open(f1, 'rb'), 'image/jpg')),
                    ('f', ('2.png', open(f2, 'rb'), 'image/jpg'))
                ]
                r = requests.post(url, files=files)
                print(r.text)


Form:
<form enctype="multipart/form-data" action="upload.php" method="POST">
    <input type="file" name="f" multiple="true">
    <input type="submit">
  </form>


Risposta del server:
(
    [f] => Array
        (
            [name] => 2.png
            [type] => image/jpg
            [tmp_name] => C:\Program Files (x86)\EasyPHP-Webserver-14.1b2\binaries\tmp\php38A2.tmp
            [error] => 0
            [size] => 110173
        )
)


Ergo mi carica solo 1 file

9
Base / __getitem__ per l'indice
« il: Settembre 18, 2018, 14:02 »
import random

class Chromosome(object):
    dna = "ATCG"

    def __getitem__(self, index):
        return self.dna[index]

    def __len__(self):
        return len(self.dna)

c = Chromosome()

print(random.choice(c))


examples:

>python test2.py
C

>python test2.py
A

>python test2.py
C

>python test2.py
A

>python test2.py
G


Mi servirebbe un metodo che mi restituisce l'indice invece del valore, e non posso sostituire __getitem__ facendo "return index" perchè ho bisogno anche del metodo che mi restituisce il valore.

Esiste qualcosa di nativo senza che mi invento nulla tipo: random.randint(0, len(c) - 1)?

10
Base / [risolto]Numpy più lento della nativa random?
« il: Settembre 17, 2018, 14:54 »
Come è possibile?

>>> cProfile.run('for _ in range(1000000): numpy.random.randint(1,3)')
         1000003 function calls in 2.935 seconds

>>> cProfile.run('for _ in range(1000000): numpy.random.choice([1,2])')
         1000003 function calls in 6.875 seconds

>>> cProfile.run('for _ in range(1000000): random.choice([1,2])')
         3000003 function calls in 1.470 seconds

>>> cProfile.run('for _ in range(1000000): random.randint(1, 2)')
         3000003 function calls in 2.171 seconds


E poi come è possibile che randint sia più veloce di choice nella libreria std?

Grazie

11
Base / [ri-aperto]Py .exe eseguire se stesso in background
« il: Settembre 01, 2018, 08:13 »
Come faccio questa cosa?

test.exe
import sys
import time
import subprocess


if len(sys.argv) == 1:
    subprocess.Popen(["./test.exe", "bckrnd"])
    sys.exit(0)

while True:
    # Nothing to do
    time.sleep(1)


Grazie

=================

Dopo non essermi arresto, alla fine ho trovato la soluzione:
DETACHED_PROCESS = 0x00000008
subprocess.Popen(["test.exe", "1"], creationflags=DETACHED_PROCESS)

12
Mobile / Multiple domande Kivy e SL4A
« il: Agosto 24, 2018, 10:31 »
Kivy:
1) Come faccio a sviluppare l'app in testing senza dovere sempre stare a compilarla e poi provarla sull'emulatore?
2) Come faccio a richiedere che l'app si avii in modalità root?
3) Come faccio ad aprire un processo in background?
4) Come faccio a leggere le cose stampante con "print"?
5) Per installare una libreria non std basta che la aggiungo al file di configurazione durante la compilazione o devo puttare qualche file da qualche parte?

SL4A:
Ho provato a inizializzare qualche script python, ma quando lo apro non trovo nessun script, quindi ho scaricato una shell android e ho fatto:
cd /sdcard/sl4a/scripts
echo "import sys; print sys.path" >> test.py

Ma continuo a non vedere nessun file.

p.s. l'apk non deve girare su mobile ma solo su emulatore

13
Database / [MariaDB] Problema con JSON field
« il: Agosto 16, 2018, 09:06 »
Ho un campo di tipo "JSON" in MariaDB, ma ho scoperto che in realtà non è JSON ma:
Citazione
JSON is an alias for LONGTEXT introduced for compatibility reasons with MySQL's JSON data type

Quindi è un longtext, come trasformo un testo in un Json? (p.s. mi ha anche cambiato gli apici, perciò json.loads non è applicabile)

Potrei fare un replace("'", '"'), ma boh, poi potrei dover lavorare con le eccezioni per correggere eventuali problemi con un parser...

14
Base / [risolto]Come faccio questa cosa?
« il: Agosto 15, 2018, 09:53 »
Lo so il titolo non è molto autoesplicativo...

test1.py
lol = None

def test(a=lol):
    return a


test2.py
import test1

test1.lol = "cicciopasticcio"

print(test1.test())


output:
C:\Users\Tomas\Desktop\test>python test2.py
None

=========

Vorrei assegnarla solo UNA VOLTA e poi riutilizzare la routine con il valore assegnato, possibilmente senza variabili statiche.

grazie

15
Ho visto alcuni programmi che aggiornano lo stdout del prompt/terminale senza cambiare riga... come se fa?  :D
Grazie

Pagine: [1] 2 3 ... 6