小编tod*_*day的帖子

使用Keras的简单线性回归

我一直在尝试使用Keras中的神经网络实现一个简单的线性回归模型,希望了解我们如何在Keras库中工作.不幸的是,我最终得到了一个非常糟糕的模型.这是实施:

from pylab import *
from keras.models import Sequential
from keras.layers import Dense

#Generate dummy data
data = data = linspace(1,2,100).reshape(-1,1)
y = data*5

#Define the model
def baseline_model():
   model = Sequential()
   model.add(Dense(1, activation = 'linear', input_dim = 1))
   model.compile(optimizer = 'rmsprop', loss = 'mean_squared_error', metrics = ['accuracy'])
   return model


#Use the model
regr = baseline_model()
regr.fit(data,y,epochs =200,batch_size = 32)
plot(data, regr.predict(data), 'b', data,y, 'k.')
Run Code Online (Sandbox Code Playgroud)

生成的图如下:

情节

有人可以指出上述模型定义中的缺陷(可以确保更好的拟合)吗?

python machine-learning linear-regression neural-network keras

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

Keras GRUCell 缺少 1 个必需的位置参数:'states'

我尝试用 Keras 构建一个 3 层 RNN。部分代码在这里:

    model = Sequential()
    model.add(Embedding(input_dim = 91, output_dim = 128, input_length =max_length))
    model.add(GRUCell(units = self.neurons, dropout = self.dropval,  bias_initializer = bias))
    model.add(GRUCell(units = self.neurons, dropout = self.dropval,  bias_initializer = bias))
    model.add(GRUCell(units = self.neurons, dropout = self.dropval,  bias_initializer = bias))
    model.add(TimeDistributed(Dense(target.shape[2])))
Run Code Online (Sandbox Code Playgroud)

然后我遇到了这个错误:

call() missing 1 required positional argument: 'states'
Run Code Online (Sandbox Code Playgroud)

错误详情如下:

~/anaconda3/envs/hw3/lib/python3.5/site-packages/keras/models.py in add(self, layer)
487                           output_shapes=[self.outputs[0]._keras_shape])
488         else:
--> 489             output_tensor = layer(self.outputs[0])
490             if isinstance(output_tensor, list):
491                 raise TypeError('All layers in a Sequential model ' …
Run Code Online (Sandbox Code Playgroud)

python machine-learning keras gated-recurrent-unit rnn

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

如何在Keras Lambda层中有条件地缩放值?

输入张量rnn_pv是形状(?, 48, 1)。我想缩放此张量中的每个元素,因此我尝试使用Lambda如下图层:

rnn_pv_scale = Lambda(lambda x: 1 if x >=1000 else x/1000.0 )(rnn_pv)
Run Code Online (Sandbox Code Playgroud)

但这带来了错误:

TypeError: Using a `tf.Tensor` as a Python `bool` is not allowed. Use `if t is not None:` instead of `if t:` to test if a tensor is defined, and use TensorFlow ops such as tf.cond to execute subgraphs conditioned on the value of a tensor.
Run Code Online (Sandbox Code Playgroud)

那么实现此功能的正确方法是什么?

python machine-learning keras tensorflow tensor

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

将sample_weights与fit_generator()一起使用

在自回归连续问题中,当零位占据过多位置时,可以将情况视为零膨胀问题(即ZIB)。换句话说,不是要拟合f(x),我们要拟合g(x)*f(x)where f(x)是我们要近似的函数,即y,并且g(x)是一个根据值是零还是非零而输出介于0和1之间的值的函数。

目前,我有两个模型。一个给我的g(x)模型,另一个给我的模型g(x)*f(x)

第一个模型给了我一组权重。这是我需要您帮助的地方。我可以将sample_weights参数与一起使用model.fit()。当我处理大量数据时,则需要使用model.fit_generator()。但是,fit_generator()没有论点sample_weights

sample_weights内部解决方案fit_generator()吗?否则,g(x)*f(x)如果我已经有训练有素的模型,我该如何适应g(x)

machine-learning time-series generator autoregressive-models keras

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

KERAS“ sparse_categorical_crossentropy”问题

输入为1.0或0.0。当我尝试用模型和sparse_categorical_crossentropy损失进行预测时,我得到如下信息: [[0.4846592 0.5153408]]

我怎么知道它预测什么类别?

python machine-learning loss keras tensorflow

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

在 Keras 中保存模型权重:什么是模型权重?

我通过 Keras 创建了一个用于图像识别的深度学习模型,并将模型权重保存为model.save_weights('weights.h5'). 另外,我加载了它并再次使用了重量。

我知道这model.save_weights()可以节省模型权重。我的问题是模型权重是多少?是过滤器的重量吗?

neural-network deep-learning conv-neural-network keras tensorflow

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

在冻结的Keras模型中,辍学层是否仍处于活动状态(即,trainable = False)?

我有两个训练有素的模型(model_Amodel_B),并且两个模型都有辍学层。我已经冻结model_Amodel_B合并了它们,并获得了新的密集层model_AB(但我尚未删除model_A的和model_B的辍学层)。model_AB的权重将是不可训练的,除了增加的致密层。

现在的问题是:在辍学层model_Amodel_B活动状态(即滴神经元)时,我的训练model_AB

machine-learning keras tensorflow keras-layer dropout

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

如何使用 predict_generator 对 Keras 中的未标记测试数据进行预测?

我正在尝试构建图像分类模型。这是一个 4 类图像分类。这是我用于构建图像生成器和运行训练的代码:

train_datagen = ImageDataGenerator(rescale=1./255.,
                               rotation_range=30,
                               horizontal_flip=True,
                               validation_split=0.1)


train_generator = image_gen.flow_from_directory(train_dir, target_size=(299, 299), 
                                                class_mode='categorical', batch_size=20,
                                                subset='training')

validation_generator = image_gen.flow_from_directory(train_dir, target_size=(299, 299), 
                                                class_mode='categorical', batch_size=20,
                                                subset='validation')

model.compile(Adam(learning_rate=0.001), loss='categorical_crossentropy',
                                         metrics=['accuracy'])

model.fit_generator(train_generator, steps_per_epoch=int(440/20), epochs=20, 
                              validation_data=validation_generator, 
                              validation_steps=int(42/20))
Run Code Online (Sandbox Code Playgroud)

我能够完美地进行训练和验证工作,因为训练目录中的图像存储在每个班级的单独文件夹中。但是,正如您在下面看到的,测试目录有 100 个图像,其中没有文件夹。它也没有任何标签,只包含图像文件。

如何使用 Keras对test文件夹中的图像文件进行预测?

数据集目录结构

python classification keras tensorflow

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

如何在 Keras 中组合两个具有不同输入大小的 LSTM 层?

我有两种类型的输入序列,其中input1包含 50 个值和input2包含 25 个值。我尝试在函数式 API 中使用 LSTM 模型来组合这两种序列类型。然而,由于我的两个输入序列的长度不同,我想知道我当前所做的是否是正确的方法。我的代码如下:

input1 = Input(shape=(50,1))
x1 = LSTM(100)(input1)
input2 = Input(shape=(25,1))
x2 = LSTM(50)(input2)

x = concatenate([x1,x2])
x = Dense(200)(x)
output = Dense(1, activation='sigmoid')(x)

model = Model(inputs=[input1,input2], outputs=output)
Run Code Online (Sandbox Code Playgroud)

更具体地说,我想知道如何组合两个具有不同输入长度的 LSTM 层(即在我的例子中为 50 和 25)。如果需要,我很乐意提供更多详细信息。

python classification deep-learning lstm keras

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

如何在 map 方法中预处理和标记 TensorFlow CsvDataset?

我制作了一个 TensorFlow CsvDataset,我正在尝试对数据进行标记:

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'
from tensorflow import keras
import tensorflow as tf
from tensorflow.keras.preprocessing.text import Tokenizer
import os
os.chdir('/home/nicolas/Documents/Datasets')

fname = 'rotten_tomatoes_reviews.csv'


def preprocess(target, inputs):
    tok = Tokenizer(num_words=5_000, lower=True)
    tok.fit_on_texts(inputs)
    vectors = tok.texts_to_sequences(inputs)
    return vectors, target


dataset = tf.data.experimental.CsvDataset(filenames=fname,
                                          record_defaults=[tf.int32, tf.string],
                                          header=True).map(preprocess)
Run Code Online (Sandbox Code Playgroud)

运行这个,给出以下错误:

ValueError: len 需要一个非标量张量,得到一个形状 Tensor("Shape:0", shape=(0,), dtype=int32)

我尝试过的:几乎任何可能性领域。请注意,如果我删除预处理步骤,一切都会运行。

数据是什么样的:

(<tf.Tensor: shape=(), dtype=int32, numpy=1>,
 <tf.Tensor: shape=(), dtype=string, numpy=b" Some movie critic review...">)
Run Code Online (Sandbox Code Playgroud)

python nlp keras tensorflow tensorflow-datasets

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