Я программирую нейронную сеть для распознавания цифр, обученную на наборе данных MNIST. На данный момент я читаю каждую строку отдельно, используя следующий код:
Код: Выделить всё
file = np.loadtxt(dataLocation, delimiter=",", dtype="float128")
count = 0
print("Starting training")
for row in file:
count += 1
data = []
for item in row:
data.append([item/255]) #This takes an array like [1,2,3,4] and makes it [[1],[2],[3],[4]] which is necessary for this program
desired = self.Transformer(data.pop(0)) #Look at transformer method to understand
где self.transformer() вызывает функцию, которая берет первый элемент из строки, например 2, и выводит его в вектор [[0],[0],[1],[0],[0],[0],[0],[0],[0],[0]]. Я хотел знать, есть ли более эффективный способ прочитать это, поскольку в моей текущей программе одна эпоха занимает около 30 минут, а это означает, что на 30 эпох у меня уходит 15 часов. Я подозреваю, что это одна из главных неэффективностей моего кода. Как мне это улучшить?
Подробнее здесь:
https://stackoverflow.com/questions/798 ... -in-python