我正在使用Keras
(使用Tensorflow
后端)进行二进制分类,我有大约76%的精度和70%的召回率.现在我想尝试使用决策阈值.据我所知,Keras
使用决策阈值0.5.有没有办法Keras
使用自定义阈值来决策精度和召回?
感谢您的时间!
我正在尝试使用LSTM进行多变量数据的时间序列预测.我有500个样本,15个维度.我想使用回顾10. LSTM层的输入形状是什么.那将会
(samples,look back,dimension) = (50000,10,15)
Run Code Online (Sandbox Code Playgroud)
要么
(samples,dimension, look back) = (50000,15,10)
Run Code Online (Sandbox Code Playgroud)
我正在使用Keras.
我想拍摄输入图像img
(也有负值)并将其输入两个激活层.但是,我想做一个简单的转换,例如将整个图像乘以-1.0
:
left = Activation('relu')(img)
right = Activation('relu')(tf.mul(img, -1.0))
Run Code Online (Sandbox Code Playgroud)
如果我这样做,我得到:
TypeError: Output tensors to a Model must be Keras tensors. Found: Tensor("add_1:0", shape=(?, 5, 1, 3), dtype=float32)
Run Code Online (Sandbox Code Playgroud)
我不知道如何解决这个问题.是否有一个Keras
侧面mul()
,我可以使用这种事的方法?或者tf.mul(img, -1.0)
我可以以某种方式包装结果,以便我可以传递给它Activation
?
请注意:负值可能很重要.因此,将图像转换为最小值简直0.0
不是解决方案.
我得到了同样的错误
left = Activation('relu')(conv)
right = Activation('relu')(-conv)
Run Code Online (Sandbox Code Playgroud)
同样的错误:
import tensorflow as tf
minus_one = tf.constant([-1.])
# ...
right = merge([conv, minus_one], mode='mul')
Run Code Online (Sandbox Code Playgroud) 我在Python Keras中安装了神经网络。
为了避免过度拟合,我想监视训练/验证损失并创建适当的回调,当训练损失远小于验证损失时,该回调将停止计算。
回调的示例是:
callback = [EarlyStopping(monitor='val_loss', value=45, verbose=0, mode='auto')]
Run Code Online (Sandbox Code Playgroud)
与验证损失相比,训练损失过少时,有什么方法可以停止训练?
先感谢您
嗨,我不明白 keras fit_generator 文档。
我希望我的困惑是理性的。
有batch_size
和也有分批训练的概念。使用model_fit()
,我指定 abatch_size
为 128。
对我来说,这意味着我的数据集将一次输入 128 个样本,从而大大减轻记忆。只要我有时间等待,它应该允许训练 1 亿个样本数据集。毕竟,keras 一次只能“处理”128 个样本。对?
但我高度怀疑,batch_size
单独指定并不能做我想要的任何事情。大量内存仍在使用中。为了我的目标,我需要每批训练 128 个例子。
所以我猜这是什么fit_generator
。我真的很想问问为什么batch_size
实际上不像它的名字所暗示的那样工作?
更重要的是,如果fit_generator
需要,我在哪里指定batch_size
?文档说无限循环。生成器在每一行上循环一次。我如何一次循环 128 个样本并记住我上次停止的位置并在下次 keras 要求下一批的起始行号(第一批完成后第 129 行)时回忆起它。
当我使用 Keras 运行此代码时:
networkDrive = Input(batch_shape=(1,length,1))
network = SimpleRNN(3, activation='tanh', stateful=False, return_sequences=True)(networkDrive)
generatorNetwork = Model(networkDrive, network)
predictions = generatorNetwork.predict(noInput, batch_size=length)
print(np.array(generatorNetwork.layers[1].get_weights()))
Run Code Online (Sandbox Code Playgroud)
我得到这个输出
[array([[ 0.91814435, 0.2490257 , 1.09242284]], dtype=float32)
array([[-0.42028981, 0.68996912, -0.58932084],
[-0.88647962, -0.17359462, 0.42897415],
[ 0.19367599, 0.70271438, 0.68460363]], dtype=float32)
array([ 0., 0., 0.], dtype=float32)]
Run Code Online (Sandbox Code Playgroud)
我想,(3,3) 矩阵是权重矩阵,将 RNN 单元相互连接起来,两个数组之一可能是偏差但第三个是什么?
我刚开始使用 Keras。刚刚尝试导入 base_filter 进行文本预处理。我做了:
from keras.preprocessing.text import base_filter
Run Code Online (Sandbox Code Playgroud)
我有错误:
ImportError: cannot import name 'Base_filter'
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,我进行了谷歌搜索,但找不到任何答案。有谁知道出了什么问题?base_filter 在哪里位于 keras
多谢。