используя zip и генератор, как я могу получить пакетные данные - PullRequest
0 голосов
/ 21 февраля 2020

простой пример кода:

import numpy as np

x_train = np.array([[95, 50, 10, 5, 4], 
                    [85, 5, 100, 40, 3], 
                    [75, 50, 10, 30, 1],
                    [65, 50, 1, 20, 42],
                    [55, 500, 10, 10, 3],
                    [45, 50, 10, 110, 40]], dtype=np.float32) # training data

y_train = np.array([1,1,0,0,1,0]) # label 

train_data= list(zip(x_train, y_train)) # zip both data and lable

def batch_iter(data): # I make simple generator
    for i in range(len(data)) :
        yield data[i:i+1]

batches = batch_iter(train_data)

for i in range(len(x_train)):
    x, y = batches  # error happend   too many values to unpack (expected 2)
    x, y = zip(*batches) # error happend  not enough values to unpack (expected 2, got 1)

Как я могу взять данные каждого поезда и метку для каждой итерации ??

спасибо.

1 Ответ

0 голосов
/ 21 февраля 2020

Я изменил код следующим образом, он работает хорошо. Мне нужно изучить генератор и numpy. Пожалуйста, добавьте свой ответ. спасибо

x_train = np.array([[95, 50, 10, 5, 4], 
                    [85, 5, 100, 40, 3], 
                    [75, 50, 10, 30, 1],
                    [65, 50, 1, 20, 42],
                    [55, 500, 10, 10, 3],
                    [45, 50, 10, 110, 40]], dtype=np.float32)

y_train = np.array([1,1,0,0,1,0])

train_data= list(zip(x_train, y_train))

def batch_iter(data):
  data = np.array(data)
  for i in range(len(data)) :
    yield data[i:i+1]

batches = batch_iter(train_data)

x, y = zip(*next(batches))
...