小编Sre*_* TP的帖子

在OpenCV Python中更快地调整图像大小

我的文件夹(5M +)中有很多图像文件。这些图像大小不同。我想将这些图像调整为128x128

我在循环中使用以下函数在Python中使用OpenCV调整大小

def read_image(img_path):
    # print(img_path)
    img = cv2.imread(img_path)
    img = cv2.resize(img, (128, 128))
    return img

for file in tqdm(glob.glob('train-images//*.jpg')):
    img = read_image(file)
    img = cv2.imwrite(file, img)
Run Code Online (Sandbox Code Playgroud)

但是,这将需要7个多小时才能完成。我想知道是否有任何方法可以加快此过程。

我可以实现并行处理以有效地做到这dask一点吗?如果是这样,怎么可能。

python opencv image-processing

4
推荐指数
1
解决办法
1529
查看次数

lightgbm中的f1_score指标

我想培养与定制度量的LGB模式:f1_scoreweighted平均水平.

我在这里浏览了lightgbm的高级示例,发现了自定义二进制错误函数的实现.我实现了类似的功能来返回f1_score,如下所示.

def f1_metric(preds, train_data):

    labels = train_data.get_label()

    return 'f1', f1_score(labels, preds, average='weighted'), True
Run Code Online (Sandbox Code Playgroud)

我试图通过传递feval参数来训练模型,f1_metric如下所示.

evals_results = {}

bst = lgb.train(params, 
                     dtrain, 
                     valid_sets= [dvalid], 
                     valid_names=['valid'], 
                     evals_result=evals_results, 
                     num_boost_round=num_boost_round,
                     early_stopping_rounds=early_stopping_rounds,
                     verbose_eval=25, 
                     feval=f1_metric)
Run Code Online (Sandbox Code Playgroud)

然后我就到了 ValueError: Found input variables with inconsistent numbers of samples:

训练集正在传递给函数而不是验证集.

如何配置以便传递验证集并返回f1_score.

python machine-learning lightgbm

3
推荐指数
2
解决办法
6975
查看次数

Keras 中的 BCEWithLogitsLoss

如何BCEWithLogitsLoss在 keras 中实现并将其用作自定义损失函数,同时用作Tensorflow后端。

我已经使用了BCEWithLogitsLoss其中PyTorch定义的torch

如何在 Keras 中实现相同的功能?

python deep-learning keras loss-function

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

从 URL 加载权重

我有.h5一个 CNN 模型的权重文件 ( ) 的URL 。我想将该权重直接加载到 Python 文件并编译 keras 模型。如何才能做到这一点。?

有没有直接的方法,或者我应该下载重量文件并从磁盘加载它。?

machine-learning keras

2
推荐指数
1
解决办法
1708
查看次数

无效参数错误 Keras

我试图为二元分类任务制作一个神经网络模型。模型是这样的

LEARNING_RATE_INIT = 0.001
LEARNING_RATE_END = 0.0001
BATCH_SIZE = 20000
EPOCHS = 2

EMBEDDING_N = 50
DENSE_N = 1024

SPATIAL_DROPOUT_1D = 0.2
DROPOUT_1 = 0.2
DROPOUT_2 = 0.2

in_machine = Input(shape=[1], name='machine')
emb_machine = Embedding(max_machine, EMBEDDING_N)(in_machine)

in_windspeed = Input(shape=[1], name='windspeed')
emb_windspeed = Embedding(max_windspeed, EMBEDDING_N)(in_windspeed)

in_activepower = Input(shape=[1], name='activepower')
emb_activepower = Embedding(max_activepower, EMBEDDING_N)(in_activepower)

in_pitchangle = Input(shape=[1], name='pitchangle')
emb_pitchangle = Embedding(max_pitchangle, EMBEDDING_N)(in_pitchangle)

in_genspeed = Input(shape=[1], name='genspeed')
emb_genspeed = Embedding(max_genspeed, EMBEDDING_N)(in_genspeed)

in_temp = Input(shape=[1], name='temp')
emb_temp = Embedding(max_temp, EMBEDDING_N)(in_temp)

in_turbine = Input(shape=[1], name='turbine') …
Run Code Online (Sandbox Code Playgroud)

python keras

2
推荐指数
1
解决办法
1874
查看次数

Python没有列表大小

我只是在Python 3中检查一些数据类型的大小,我观察到了这一点.

import sys

val = None
print(sys.getsizeof(val))
Run Code Online (Sandbox Code Playgroud)

输出16与预期一致.

我尝试制作1000个地点的列表,None我期望大小为16*1000 = 16000或更多.但我得到的结果是不同的.

import sys

val = [None]*1000

print(sys.getsizeof(val))
Run Code Online (Sandbox Code Playgroud)

输出是8064.几乎是我预期的一半.

这是什么原因.?为什么分配的内存较少.

python python-3.x

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

获取每一行值并在Pandas中创建一列

我有一个如下所示的数据框

Timestamp              x_1          x_2       x_3         x_4    x_5      x_6
2018-01-31 22:30:00 2.023844    2.477428    1.023026    1.035433    0.530817    0.576471
2018-02-01 00:00:00 0.198297    -0.012164   0.103245    -0.101643   0.087468    -0.096665
2018-02-01 01:30:00 0.130721    0.042116    0.200378    0.166665    0.263809    0.250849
2018-02-01 03:00:00 0.621256    1.130577    0.907597    1.659503    1.161939    1.966579
2018-02-01 04:30:00 1.399033    2.438298    1.521268    2.570770    1.555749    2.583903
Run Code Online (Sandbox Code Playgroud)

我想创建一个新的数据帧,它只包含一个这样的列

  vals
    2.023844
    2.477428    
    1.023026    
    1.035433    
    0.530817    
    0.576471
    0.198297    
    -0.012164   
    0.103245    
    -0.101643   
    0.087468    
    -0.096665
    0.130721    
    0.042116    
    0.200378    
    0.166665    
    0.263809    
    0.250849
Run Code Online (Sandbox Code Playgroud)

我必须获取每一行值(x_1到x_6)并将它们堆叠成一列.

是否有一种简单的方法可以在熊猫中进行,而不是乱搞数组和列表.

python pandas

2
推荐指数
1
解决办法
35
查看次数

熊猫date_range只有几小时,几分钟和几秒钟

我想要一个时间戳列表,范围从00:00:0023:45:00使用pandas date_range

我尝试过这样

pd.date_range(start=pd.Timestamp('00:00:00'), end=pd.Timestamp('23:45:00'), freq='15T')
Run Code Online (Sandbox Code Playgroud)

即使我没有提供年,月和日期,我得到的输出也是这样

DatetimeIndex(['2018-09-14 00:00:00', '2018-09-14 00:15:00',
               '2018-09-14 00:30:00', '2018-09-14 00:45:00',
               '2018-09-14 01:00:00', '2018-09-14 01:15:00',
               '2018-09-14 01:30:00', '2018-09-14 01:45:00',
               '2018-09-14 02:00:00', '2018-09-14 02:15:00',
               '2018-09-14 02:30:00', '2018-09-14 02:45:00',
               '2018-09-14 03:00:00', '2018-09-14 03:15:00',
               '2018-09-14 03:30:00', '2018-09-14 03:45:00',
               '2018-09-14 04:00:00', '2018-09-14 04:15:00',
               '2018-09-14 04:30:00', '2018-09-14 04:45:00',
               '2018-09-14 05:00:00', '2018-09-14 05:15:00',
               '2018-09-14 05:30:00', '2018-09-14 05:45:00',
               '2018-09-14 06:00:00', '2018-09-14 06:15:00',
               '2018-09-14 06:30:00', '2018-09-14 06:45:00',
               '2018-09-14 07:00:00', '2018-09-14 07:15:00',
               '2018-09-14 07:30:00', '2018-09-14 07:45:00',
               '2018-09-14 08:00:00', '2018-09-14 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

根据出现顺序在Python中编码列表

我有这样的清单

['A', 'A', 'B', 'B', 'A+B', 'A+B', 'B', 'B', 'A']

我想将此列表转换为这样

[1, 1, 2, 2, 3, 3, 4, 4, 5]

我所做的是,我将从值开始,1当列表中的值发生变化时,我会将手头的值增加一。

这是我现在使用的代码,

counts = []
count = 1

for i in range(1, len(p)):
    print(p[i-1], p[i])
    if p[i-1] == p[i]:
        counts.append(count)
    else:
        counts.append(count)
        count += 1

if p[-2] == p[-1]:
    counts.append(counts[-1])
else:
    counts.append(counts[-1] + 1)
Run Code Online (Sandbox Code Playgroud)

如何在Python中有效地做到这一点?如果需要,我也可以使用numpy

python numpy

2
推荐指数
1
解决办法
37
查看次数

Git 跳过提交后钩子

我的仓库中有一个 git post-commit 钩子。有时我想跳过运行这个钩子。

要跳过预提交挂钩,我知道我可以在像这样提交时使用 --no-verify 标志

git commit -m "message" --no-verify
Run Code Online (Sandbox Code Playgroud)

但这并不是跳过提交后挂钩。

是否可以跳过提交后挂钩?如果是这样怎么办?

git

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