小编Ara*_*san的帖子

了解 Keras 的 ImageDataGenerator 类中的 `width_shift_range` 和 `height_shift_range` 参数

Keras 的文档ImageDataGenerator class说——

width_shift_range: Float, 1-D array-like or int - float: 总宽度的分数,如果 < 1,或者像素,如果 >= 1。 - 1-D array-like: 来自数组的随机元素。- int:间隔的整数像素(-width_shift_range, +width_shift_range)-width_shift_range=2可能的值为整数[-1, 0, +1],与 相同width_shift_range=[-1, 0, +1],而width_shift_range=1.0可能的值为区间 [-1.0, +1.0) 中的浮点数。

height_shift_range: Float, 1-D array-like or int - float: 总高度的分数,如果 < 1,或者像素,如果 >= 1。 - 1-D array-like: 来自数组的随机元素。- int:间隔的整数像素(-height_shift_range, +height_shift_range)-height_shift_range=2可能的值为整数[-1, 0, +1],与 相同height_shift_range=[-1, 0, +1],而height_shift_range=1.0可能的值为区间 [-1.0, +1.0) 中的浮点数。

我是 …

python machine-learning data-generation python-3.x keras

16
推荐指数
1
解决办法
4681
查看次数

在 PyTorch 中计算每个 epoch 的准确率

我正在研究神经网络问题,将数据分类为 1 或 0。我使用二进制交叉熵损失来做到这一点。损失很好,但是,准确性非常低并且没有提高。我假设我在精度计算中犯了一个错误。在每个时期之后,我在对输出进行阈值处理后计算正确的预测,并将该数字除以数据集的总数。我在精度计算中做错了什么吗?为什么它没有改善,反而变得更糟?这是我的代码:

net = Model()
criterion = torch.nn.BCELoss(size_average=True)   
optimizer = torch.optim.SGD(net.parameters(), lr=0.1)

num_epochs = 100
for epoch in range(num_epochs):
    for i, (inputs,labels) in enumerate (train_loader):
        inputs = Variable(inputs.float())
        labels = Variable(labels.float())
        output = net(inputs)
        optimizer.zero_grad()
        loss = criterion(output, labels)
        loss.backward()
        optimizer.step()

    #Accuracy
    output = (output>0.5).float()
    correct = (output == labels).float().sum()
    print("Epoch {}/{}, Loss: {:.3f}, Accuracy: {:.3f}".format(epoch+1,num_epochs, loss.data[0], correct/x.shape[0]))
Run Code Online (Sandbox Code Playgroud)

这是我得到的奇怪输出:

Epoch 1/100, Loss: 0.389, Accuracy: 0.035
Epoch 2/100, Loss: 0.370, Accuracy: 0.036
Epoch 3/100, Loss: 0.514, Accuracy: 0.030
Epoch …
Run Code Online (Sandbox Code Playgroud)

neural-network pytorch

11
推荐指数
3
解决办法
5万
查看次数

socket.gaierror: [Errno -2] 名称或服务未知 | Python

我已经关闭了我的互联网连接并想在代码中捕获它。我已经设置了超时限制,但它不起作用。我收到了一大堆错误消息,我不明白。

任何人都可以帮助理解这些错误消息的含义吗?

我的python代码(简化):

import requests
from requests.exceptions import Timeout

url = 'https://api.github.com'
try:
    resp = requests.get(url=url, timeout=7)
except Timeout:
    print('The request timed out')
else:
    entries = resp.json()
    print(entries)
Run Code Online (Sandbox Code Playgroud)

错误信息:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 141, in _new_conn
    (self.host, self.port), self.timeout, **extra_kw)
  File "/usr/lib/python3/dist-packages/urllib3/util/connection.py", line 60, in create_connection
    for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM):
  File "/usr/lib/python3.6/socket.py", line 745, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known …
Run Code Online (Sandbox Code Playgroud)

python error-handling python-3.x python-requests

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

vim脚本中的子串

是否有任何substr()类似的函数来获取vim脚本中的子字符串?如果不是这种任务的最佳替代品或替代品是什么?

vim substring substr

7
推荐指数
3
解决办法
1673
查看次数

skimage.io.imread 与 cv2.imread

我正在使用并且熟悉cv2,今天我正在尝试使用skimage

我试图使用 skimage和读取图像cv2。看来他们都完美地解读了图像。但是,当我绘制图像的直方图但读取不同的库(skimagecv2)时,直方图显示出显着差异。

有人可以帮助我解释直方图之间的区别吗?

我的代码:

import cv2
import skimage.io as sk
import numpy as np
import matplotlib.pyplot as plt

path = '../../img/lenna.png'

img1 = sk.imread(path, True)
img2 = cv2.imread(path, cv2.IMREAD_GRAYSCALE)
print(img1.shape)
print(img2.shape)

plt.subplot(2, 2, 1)
plt.imshow(img1, cmap='gray')
plt.title('skimage read')
plt.xticks([])
plt.yticks([])

plt.subplot(2, 2, 2)
plt.imshow(img2, cmap='gray')
plt.title('cv2 read')
plt.xticks([])
plt.yticks([])

plt.subplot(2, 2, 3)
h = np.histogram(img1, 100)
plt.plot(h[0])
plt.title('skimage read histogram')

plt.subplot(2, 2, 4)
h = np.histogram(img2, 100)
plt.plot(h[0]) …
Run Code Online (Sandbox Code Playgroud)

python opencv numpy histogram scikit-image

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

如何直接从构造函数结束C++代码?

如果满足某个条件,我希望我的C++代码停止运行并进行适当的对象清理; 在类的构造函数中.

class A {
public:
    int somevar;
    void fun() {
        // something
    }
};

class B {
public:
    B() {
        int possibility;
        // some work
        if (possibility == 1) {
            // I want to end the program here
            kill code;
        }
    }
};

int main() {
    A a;
    B b;
    return 0;
}    
Run Code Online (Sandbox Code Playgroud)

如何在此时终止我的代码进行适当的清理.众所周知,std::exit不执行任何类型的堆栈展开,堆栈上没有活动对象会调用其各自的析构函数来执行清理.所以std::exit不是一个好主意.

c++ exit-code exit c++11 c++14

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

如何在Geany中添加自定义模板?

如何在Geany中加载自定义模板?或编辑现有的?

是否有任何外卡或标签可以自动加载日期,名称?

ide templates geany

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

带有空集的"超出绑定的迭代器"

我在这段代码中遇到了分段错误:

#include <iostream>
#include <set>

int main() {
    std::set<int> st;
    auto rf = --st.end();
    std::cout << "Size of the set is: " << (int) st.size() << std::endl;

    if ( (int) st.size() > 0) { // size of st is zero here
        int foo = (*rf);  // rf is out bound
        std::cout << "foo: " << foo << std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

由于st是空的,所以if条件永远不会成立,无论rf是否出界.如果我注释掉if块,那么程序运行正常.

我也尝试了它std::vector也运行良好.

为什么我会出现分段错误?为什么"如果带有无效语句的条件总是假的"会影响代码的运行?

编译:

g++ -Wall -Wextra -Wshadow -Wfloat-equal -pedantic …
Run Code Online (Sandbox Code Playgroud)

c++ iterator set segmentation-fault c++17

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