我已将我的训练数据集拆分为 80% 的训练数据和 20% 的验证数据,并创建了如下所示的 DataLoaders。但是我不想限制我的模型的训练。所以我想把我的数据分成 K(也许 5)个折叠并进行交叉验证。但是,我不知道如何在拆分数据集后将它们组合到我的数据加载器中。
train_size = int(0.8 * len(full_dataset))
validation_size = len(full_dataset) - train_size
train_dataset, validation_dataset = random_split(full_dataset, [train_size, validation_size])
full_loader = DataLoader(full_dataset, batch_size=4,sampler = sampler_(full_dataset), pin_memory=True)
train_loader = DataLoader(train_dataset, batch_size=4, sampler = sampler_(train_dataset))
val_loader = DataLoader(validation_dataset, batch_size=1, sampler = sampler_(validation_dataset))
Run Code Online (Sandbox Code Playgroud)
先感谢您 !
我需要在 PyTorch 中实现多标签图像分类模型。然而我的数据不平衡,所以我使用WeightedRandomSamplerPyTorch 中的创建自定义数据加载器。但是当我迭代自定义数据加载器时,我收到错误:IndexError: list index out of range
def make_weights_for_balanced_classes(images, nclasses):
count = [0] * nclasses
for item in images:
count[item[1]] += 1
weight_per_class = [0.] * nclasses
N = float(sum(count))
for i in range(nclasses):
weight_per_class[i] = N/float(count[i])
weight = [0] * len(images)
for idx, val in enumerate(images):
weight[idx] = weight_per_class[val[1]]
return weight
Run Code Online (Sandbox Code Playgroud)
weights = make_weights_for_balanced_classes(train_dataset.imgs, len(full_dataset.classes))
weights = torch.DoubleTensor(weights)
sampler = WeightedRandomSampler(weights, len(weights))
train_loader = DataLoader(train_dataset, batch_size=4,sampler = sampler, pin_memory=True)
Run Code Online (Sandbox Code Playgroud)
推特中的所有主题都可以在这个链接中找到 我想用里面的每个子类别抓取。
BeautifulSoup 在这里似乎没有用。我尝试使用 selenium,但我不知道如何匹配单击主类别后出现的 Xpath。
from selenium import webdriver
from selenium.common import exceptions
url = 'https://twitter.com/i/flow/topics_selector'
driver = webdriver.Chrome('absolute path to chromedriver')
driver.get(url)
driver.maximize_window()
main_topics = driver.find_elements_by_xpath('/html/body/div[1]/div/div/div[1]/div[2]/div/div/div/div/div/div[2]/div[2]/div/div/div[2]/div[2]/div/div/div/div/span')
topics = {}
for main_topic in main_topics[2:]:
print(main_topic.text.strip())
topics[main_topic.text.strip()] = {}
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用 来单击主类别main_topics[3].click(),但我不知道如何递归单击它们,直到我只找到Follow右侧的那些。
我已经实现了一个代码来下载股票市场所有日期的 bhav 副本。经过大约两年的抓取,我的IP似乎被封锁了。
这段代码对我不起作用。
import urllib.request
url = 'https://www1.nseindia.com/content/historical/DERIVATIVES/2014/APR/fo01APR2014bhav.csv.zip'
response = urllib.request.urlopen(url)
Run Code Online (Sandbox Code Playgroud)
它给出以下错误:
urllib.error.HTTPError: HTTP Error 403: Forbidden
Run Code Online (Sandbox Code Playgroud)
我想知道如何使用代理来获取数据。任何帮助将非常感激。
我有一个日志文件,其中并非所有行都采用相同的格式。如何找到此类文件的正确 grok 模式。
[15:37:20:030|1] [TdmUtil.c: 1534:fnTDM_LoadLocalFoo] F_LAA : 1
[15:37:20:032|1] [TdmUtil.c: 1281:fnTDM_GetPreDef] pdeGetData : MAX_IRAT_NBR_PER_SERVED_CELL_SYS = 256
[15:37:20:091|1] [TdmUtil.c: 293:fnTDM_PrtIndexKey] fnTDM_GetIndexKeyNum Error!!
Run Code Online (Sandbox Code Playgroud)
这样,很少有行采用 line1 的格式,少数行采用 line2 的格式,依此类推。我可以为每一行编写一个 grok 模式,但我不知道如何组合它们。有什么办法可以解决这个问题吗?