如何解决如何从头开始制作PyTorch DataLoader?
是否可以从头开始重新创建简单版本的PyTorch DataLoader? 该类应该能够根据批次大小返回当前批次。
例如,下面的代码只允许我同时返回一个示例
Iteration 0: [[1,2],[3,4]]
Iteration 1: [[5,6],[7,8]]
但是我要实现的是,如果我指定b_size = 2,它将返回:
(define (html->string html)
(cond [(empty? html) ""]
[(string? html) html]
[(not (symbol? (first html)))
(html->string (first html))]
[else (string-append
"<" (symbol->string (first html)) ">"
(change-tag (rest html))
"</" (symbol->string (first html)) ">")]))
(define (change-tag lst)
(cond [(empty? lst) ""]
[else (string-append
(html->string (first lst))
(html->string (rest lst)))]))
是否可以在Python中执行类似的操作?我不能使用DataLoader类。
解决方法
X = np.array([[1,2],[3,4],[5,6],[6,7]])
class DataLoader:
def __init__(self,X,b_size):
self.X = X
self.b_size = b_size
def __len__(self):
return len(self.X)//self.b_size
def __getitem__(self,index):
return self.X[index*self.b_size:index*self.b_size+self.b_size]
d = DataLoader(X,2)
for i in range(len(d)):
print (f"Iteration {i}: {d[i]}")
输出:
Iteration 0: [[1 2]
[3 4]]
Iteration 1: [[5 6]
[6 7]]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。