有没有办法将 pytorch DataLoader ( torch.utils.data.Dataloader) 完全加载到我的 GPU 中?
现在,我将每个批次分别加载到我的 GPU 中。
CTX = torch.device('cuda')
train_loader = torch.utils.data.DataLoader(
train_dataset,
batch_size=BATCH_SIZE,
shuffle=True,
num_workers=0,
)
net = Net().to(CTX)
criterion = nn.CrossEntropyLoss()
optimizer = optim.SGD(net.parameters(), lr=LEARNING_RATE)
for epoch in range(EPOCHS):
for inputs, labels in test_loader:
inputs = inputs.to(CTX) # this is where the data is loaded into GPU
labels = labels.to(CTX)
optimizer.zero_grad()
outputs = net(inputs)
loss = criterion(outputs, labels)
loss.backward()
optimizer.step()
print(f'training accuracy: {net.validate(train_loader, device=CTX)}/{len(train_dataset)}')
print(f'validation accuracy: {net.validate(test_loader, device=CTX)}/{len(test_dataset)}')
Run Code Online (Sandbox Code Playgroud)
其中Net.validate()函数由下式给出
def …Run Code Online (Sandbox Code Playgroud) 我正在一个项目中,必须对YUV420_SP_NV21图像(从Android摄像头拍摄)应用阈值,以确定哪些像素为“黑色”,哪些像素为“白色”。
因此,我想将其作为字节数组在Python中导入(使用OpenCV,NumPy,PIL等),以便可以对Y值进行一些快速的按位运算。
但是,当我尝试使用以下方法导入图像时,会得到无用的输出:
当我打字
import cv2
import numpy as np
img = cv2.imread('test.yuv')
imgArr = np.array(img)
print(img)
print(imgArr)
Run Code Online (Sandbox Code Playgroud)
我得到的输出:
None
None
Run Code Online (Sandbox Code Playgroud)
当我键入
import numpy as np
f = open('test.yuv', 'rb')
img = f.read()
imgArr = np.array(img)
Run Code Online (Sandbox Code Playgroud)
我得到一些无用的字符序列。
当我现在输入时(例如)
print(imgArr[0])
Run Code Online (Sandbox Code Playgroud)
我得到的输出:
IndexError: too many indices for array
Run Code Online (Sandbox Code Playgroud)
这意味着imgArr根本没有数组!
谁能告诉我我在做什么错?提前致谢!
背景:
我正在学习关于“语言和自动机”的课程:目前它是关于正则表达式/语言、DFA 和 NFA。这个问题不是家庭作业,而是我决定为自己做的一些事情在 Haskell 中的实现。回答这个问题只需要 Haskell 的知识
我有以下正则表达式的数据类型
data Regex sigma = Eps
| Phi
| S sigma
| Regex sigma :. Regex sigma
| Regex sigma :| Regex sigma
deriving (Show,Eq,Read)
Run Code Online (Sandbox Code Playgroud)
有了这个,我们可以定义正则表达式,例如S 'a', or S 'a' :. S 'b', or Eps :| S 'a'。到现在为止还挺好。
现在,Eps(空字符串)应该是 的中性元素:.。即Eps :. e和e :. Eps都应该返回e(e任何其他正则表达式在哪里)。
所以我想将模式匹配应用于构造函数(:.)。这可能吗?如果是这样,我该如何实施?如果没有,还有什么方法可以实现我想要的?
我试图显式定义构造函数以应用模式匹配:
(:.) :: Regex sigma -> Regex sigma -> …Run Code Online (Sandbox Code Playgroud)