小编tod*_*day的帖子

Qt中的slot函数是否在另一个线程上运行?

在以下函数中,管理器将发出finished(QNetworkReply*)信号,然后getCategories(QNetworkReply*)将调用插槽函数.

    void getCategories()
    {
        connect(manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(getCategories(QNetworkReply*)));

        for(int i = 0; i < stores.size(); ++i)
        {
            request.setUrl(QUrl(QString("http://www.example.com/%1").arg(stores[i].store_id)));

            manager.get(request);
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果在第一次调用slot函数时发出第二个信号,Qt是否会启动另一个线程来运行slot函数作为对第二个信号的响应?如果是这样,是否有一些方法让第二次调用slot函数等到第一次调用结束?

更新:

我的意思是插槽功能有可能同时运行吗?

c++ qt qtnetwork qt-signals qtcore

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

numpy数组的keras列表,而不是预期的大小模型

我很难找到将多个输入传递给模型的正确方法。该模型有2个输入

  • 形状的噪声图像 (256, 256, 3)
  • 形状的输入图像 (256, 256, 3)

和1个输出

  • 输出形状的图像 (256, 256, 3)

我正在通过生成图像ImageDataGenerator

x_data_gen = ImageDataGenerator(
    horizontal_flip=True,
    validation_split=0.2)
Run Code Online (Sandbox Code Playgroud)

我正在通过python生成器生成示例:

def image_sampler(datagen, batch_size, subset="training"):

    for imgs in datagen.flow_from_directory('data/r_cropped', batch_size=batch_size, class_mode=None, seed=1, subset=subset):

        g_y = []

        noises = []
        bw_images = []
        for i in imgs:
            # append to expected output the original image
            g_y.append(i/255.0)

            noises.append(generate_noise(1, 256, 3)[0])
            bw_images.append(iu_rgb2gray(i))

        yield(np.array([noises, bw_images]), np.array(g_y))
Run Code Online (Sandbox Code Playgroud)

尝试使用以下方法训练模型时:

    generator.fit_generator(
       image_sampler(x_data_gen, 32),
       validation_data=image_sampler(x_data_gen,32,"validation"),
       epochs=EPOCHS,
       steps_per_epoch= 540,
       validation_steps=160 )
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

检查模型输入时出错:传递给模型的Numpy数组列表不是模型预期的大小。预计会看到2个数组,但获得了以下1个数组的列表

虽然消息很清楚,但我不知道如何解决生成过程来解决它。

我试过了:

    yield([noises, bw_images], …
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network keras tensorflow

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

迁移学习准确性差

我的任务是根据缺陷对种子进行分类。我有 7 个类的大约 14k 图像(它们的大小不相等,有些类有更多照片,有些类有更少)。我尝试从头开始训练 Inception V3,准确率约为 90%。然后我尝试使用带有 ImageNet 权重的预训练模型进行迁移学习。我inception_v3applications没有顶级 fc 层的情况下导入,然后在文档中添加了我自己的层。我以以下代码结束:

# Setting dimensions
img_width = 454
img_height = 227

###########################
# PART 1 - Creating Model #
###########################

# Creating InceptionV3 model without Fully-Connected layers
base_model = InceptionV3(weights='imagenet', include_top=False, input_shape = (img_height, img_width, 3))

# Adding layers which will be fine-tunned
x = base_model.output
x = GlobalAveragePooling2D()(x)
x = Dense(1024, activation='relu')(x)
predictions = Dense(7, activation='softmax')(x)

# Creating final model
model = Model(inputs=base_model.input, outputs=predictions)

# …
Run Code Online (Sandbox Code Playgroud)

python machine-learning keras tensorflow transfer-learning

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

Keras 模型的 predict_proba() 方法不存在

我试图通过调用predict_proba()Keras 模型来生成班级分数,但似乎这个函数不存在!它是否已被弃用,因为我在 Google 中看到了一些示例?我正在使用 Keras 2.2.2。

python machine-learning probability keras

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

Keras 拟合模型:TypeError:不可哈希类型:'numpy.ndarray'

我实现以下代码。它在以前版本的 Keras 中成功运行:

max_sequence = 56
input_dim = 26    

print("Build model..1")
first_input = Input(shape=(max_sequence,input_dim))
first_lstm = LSTM(5, return_sequences=True)(first_input)
first_bn = BatchNormalization()(first_lstm)
first_activation = Activation('tanh')(first_bn)
first_flat = Flatten()(first_activation)

print("Build model..2")
second_input = Input(shape=(max_sequence,input_dim))
second_lstm = LSTM(5, return_sequences=True)(second_input)
second_bn = BatchNormalization()(second_lstm)
second_activation = Activation('tanh')(second_bn)
second_flat = Flatten()(second_activation)

merge=concatenate([first_flat, second_flat])
merge_dense=Dense(3)(merge)
merge_bn = BatchNormalization()(merge_dense)
merge_activation = Activation('tanh')(merge_bn)
merge_dense2=Dense(1)(merge_activation)
merge_activation2 = Activation('tanh')(merge_dense2)

train_x_1 = np.reshape(np.array(train_x_1), [2999, 56, 26])
train_x_2 = np.reshape(np.array(train_x_2), [2999, 56, 26])


model=Model(inputs=[train_x_1,train_x_2], outputs=train_y_class)

optimizer = RMSprop(lr=0.5)
model.compile(optimizer=optimizer, loss='binary_crossentropy', metrics=['accuracy'])



history = …
Run Code Online (Sandbox Code Playgroud)

python numpy machine-learning lstm keras

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

如何计算 Keras 模型中模型输入的损失梯度?

我想要实现的是计算交叉熵相对于输入值的梯度x。在 TensorFlow 中我没有遇到任何问题:

ce_grad = tf.gradients(cross_entropy, x)
Run Code Online (Sandbox Code Playgroud)

但随着我的网络变得越来越大,我改用 Keras 来更快地构建它们。但是,现在我真的不知道如何实现上述目标?有没有办法从model存储整个模型的变量中提取交叉熵和输入张量?

为了清楚起见,我的cross_entropy是:

cross_entropy = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(labels = y_, logits=y_conv))
<tf.Tensor 'Mean:0' shape=() dtype=float32>
Run Code Online (Sandbox Code Playgroud)

x

x = tf.placeholder(tf.float32, shape = [None,784])
<tf.Tensor 'Placeholder:0' shape=(?, 784) dtype=float32>
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network keras tensorflow

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

张量流中的非全连接层

我想创建一个网络,其中输入层中的节点仅连接到下一层中的某些节点。这是一个小例子:

在此处输入图片说明

到目前为止,我的解决方案是将i1和之间的边的权重设置h1为零,并且在每个优化步骤之后,我将权重乘以一个矩阵(我称之为矩阵掩码矩阵),其中每个条目都是 1,除了权重的条目之间的边缘i1h1。(见下面的代码)

这种做法对吗?或者这对 GradientDescent 有影响吗?有没有另一种方法可以在 TensorFlow 中创建这种网络?

import tensorflow as tf
import tensorflow.contrib.eager as tfe
import numpy as np

tf.enable_eager_execution()


model = tf.keras.Sequential([
  tf.keras.layers.Dense(2, activation=tf.sigmoid, input_shape=(2,)),  # input shape required
  tf.keras.layers.Dense(2, activation=tf.sigmoid)
])


#set the weights
weights=[np.array([[0, 0.25],[0.2,0.3]]),np.array([0.35,0.35]),np.array([[0.4,0.5],[0.45, 0.55]]),np.array([0.6,0.6])]

model.set_weights(weights)

model.get_weights()

features = tf.convert_to_tensor([[0.05,0.10 ]])
labels =  tf.convert_to_tensor([[0.01,0.99 ]])


mask =np.array([[0, 1],[1,1]])

#define the loss function
def loss(model, x, y):
  y_ = model(x)
  return tf.losses.mean_squared_error(labels=y, predictions=y_)

#define the gradient calculation
def …
Run Code Online (Sandbox Code Playgroud)

python machine-learning neural-network keras tensorflow

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

使用图像和数字输入的神经网络

为了对图像进行分类,我们使用具有几个卷积层和几个全连接层的神经网络。

元数据包含一些有助于对图像进行分类的数字信息。有没有一种简单的方法可以将数字元数据与卷积的输出一起输入到第一个全连接层?是否可以使用 TensorFlow 或更好的 Keras 来实现这一点?

python neural-network conv-neural-network keras tensorflow

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

“警告:找不到 GCC 安装目录。g++.exe 必须位于路径中。” 使用windeployqt时

当我运行windeployqt部署应用程序时,收到以下警告:

Warning: Cannot find GCC installation directory. g++.exe must be in the path.
Run Code Online (Sandbox Code Playgroud)

即使我已将Path环境变量设置为包含位于C:\Qt\Qt5.12.0\5.12.0\mingw73_64\bin. 结果,我可以看到编译器运行时库不包含在部署的包中,即使我显式使用--compiler-runtime标志也是如此。我不确定我错过了哪一步?

deployment qt mingw g++ windeployqt

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

将形状不等的数组列表转换为 Tensorflow 2 数据集:ValueError:无法将非矩形 Python 序列转换为 Tensor

我以不等形状数组列表的形式标记数据:

array([array([1179,    6,  208,    2, 1625,   92,    9, 3870,    3, 2136,  435,
          5, 2453, 2180,   44,    1,  226,  166,    3, 4409,   49, 6728,
         ...
         10,   17, 1396,  106, 8002, 7968,  111,   33, 1130,   60,  181,
       7988, 7974, 7970])], dtype=object)
Run Code Online (Sandbox Code Playgroud)

以及各自的目标:

Out[74]: array([0, 0, 0, ..., 0, 0, 1], dtype=object)
Run Code Online (Sandbox Code Playgroud)

我正在尝试将它们转换为 padded tf.data.Dataset(),但它不允许我将不相等的形状转换为张量。我会得到这个错误:

ValueError: Can't convert non-rectangular Python sequence to Tensor.
Run Code Online (Sandbox Code Playgroud)

完整的代码在这里。假设我的起点是在之后y = ...

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
import tensorflow as tf
import tensorflow_datasets as tfds …
Run Code Online (Sandbox Code Playgroud)

python keras tensorflow tensorflow-datasets tensorflow2.0

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