小编Sur*_*ian的帖子

在 PyTorch 中使用 DataLoaders 进行 k 折交叉验证

我已将我的训练数据集拆分为 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)

先感谢您 !

machine-learning computer-vision deep-learning pytorch

10
推荐指数
2
解决办法
2万
查看次数

在 PyTorch 中使用 WeightedRandomSampler

我需要在 PyTorch 中实现多标签图像分类模型。然而我的数据不平衡,所以我使用WeightedRandomSamplerPyTorch 中的创建自定义数据加载器。但是当我迭代自定义数据加载器时,我收到错误:IndexError: list index out of range

使用此链接实现了以下代码:https://discuss.pytorch.org/t/balanced-sampling- Between-classes-with-torchvision-dataloader/2703/3?u=surajsubramanian

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)

根据/sf/answers/4256944681/ …

machine-learning computer-vision deep-learning pytorch

7
推荐指数
2
解决办法
2万
查看次数

如何从推特上抓取所有主题

推特中的所有主题都可以在这个链接中找到 我想用里面的每个子类别抓取。

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右侧的那些。

python selenium xpath web-scraping webdriverwait

7
推荐指数
1
解决办法
372
查看次数

如何使用代理下载带有 url 的 zip 文件

我已经实现了一个代码来下载股票市场所有日期的 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)

我想知道如何使用代理来获取数据。任何帮助将非常感激。

python urllib web-scraping python-requests

5
推荐指数
1
解决办法
2676
查看次数

查找具有不同结构的文件的 grok 模式

我有一个日志文件,其中并非所有行都采用相同的格式。如何找到此类文件的正确 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 模式,但我不知道如何组合它们。有什么办法可以解决这个问题吗?

logstash logstash-grok elastic-stack

3
推荐指数
1
解决办法
1915
查看次数