小编Ioa*_*ios的帖子

如何用单列在熊猫数据框上添加新行?

这个问题似乎很简单,但我找不到任何解决方案。

说我有一个没有标题的CSV文件。

121
334
313
930
Run Code Online (Sandbox Code Playgroud)

我想像这样0在底部添加/添加新行

121
334
313
930
0
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下方法,但未成功。

import pandas as pd
import os

folder_path = "/home/Ling/test/"
df = pd.read_fwf(folder_path + "test1.csv", usecols=[0], delimiter=",")
df2 = pd.DataFrame([[0]], dtype=int)
print df.append(df2, ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

结果

NaN 121
NaN 334
NaN 313
NaN 930
0.0 NaN
Run Code Online (Sandbox Code Playgroud)

我正在关注这个例子

我什至尝试将更[[0]]改为[[0,]][[,0]]但没有成功。我在代码中有什么想念的吗?

感谢您的帮助和建议。

python append dataframe pandas

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

以双精度运行 Keras 失败

我试图在 Keras 上以双精度运行 LeNet,但它失败并出现错误:TypeError: Input 'filter' of 'Conv2D' Op has type float64 that does not match type float32 of argument 'input'.. 我使用的代码如下:

import numpy as np
from sklearn.utils import shuffle
import keras
from keras.models import Sequential
from keras.layers import Input, Dense, Conv2D, MaxPooling2D, Dropout,Flatten
from keras import backend as K
from keras.models import Model
from keras.utils import np_utils
import time
import tensorflow as tf
K.set_floatx('float64') # Note: the code works if we comment this line, i.e., with single …
Run Code Online (Sandbox Code Playgroud)

keras tensorflow

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

Keras - 冻结模型然后添加可训练层

我正在采用预训练的 CNN 模型,然后尝试使用并行 CNN 实现 CNN-LSTM,所有这些并行 CNN 都具有相同的预训练权重。

# load in CNN
weightsfile = 'final_weights.h5'
modelfile = '2dcnn_model.json'

# load model from json
json_file = open(modelfile, 'r')
loaded_model_json = json_file.read()
json_file.close()
fixed_cnn_model = keras.models.model_from_json(loaded_model_json)
fixed_cnn_model.load_weights(weightsfile)

# remove the last 2 dense FC layers and freeze it
fixed_cnn_model.pop()
fixed_cnn_model.pop()
fixed_cnn_model.trainable = False

print(fixed_cnn_model.summary())
This will produce the summary:
Run Code Online (Sandbox Code Playgroud)

_

________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
input_1 (InputLayer)         (None, 32, 32, 4)         0         
_________________________________________________________________
conv2d_1 (Conv2D)            (None, 30, 30, 32) …
Run Code Online (Sandbox Code Playgroud)

keras tensorflow

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

Keras:将输出作为下一个时间步的输入

目标是预测 87601 个时间步长(10 年)和 9 个目标的时间序列 Y。输入特征 X(外源输入)是 87600 个时间步长的 11 个时间序列。输出还有一个时间步长,因为这是初始值。时间步 t 处的输出 Yt 取决于输入 Xt 和先前的输出 Yt-1。

因此,模型应如下所示:模型布局

我只能找到这个线程:LSTM: How to feed the output back to the input? 第4068章 我尝试使用 Keras 实现此功能,如下所示:

def build_model():
    # Input layers
    input_x = layers.Input(shape=(features,), name='input_x')
    input_y = layers.Input(shape=(targets,), name='input_y-1')

    # Merge two inputs
    merge = layers.concatenate([input_x,input_y], name='merge')

    # Normalise input
    norm = layers.Lambda(normalise, name='scale')(merge)

    # Hidden layers
    x = layers.Dense(128, input_shape=(features,))(norm)

    # Output layer
    output = layers.Dense(targets, activation='relu', name='output')(x) …
Run Code Online (Sandbox Code Playgroud)

time-series output keras recurrent-neural-network

5
推荐指数
0
解决办法
1821
查看次数

在函数式 API 中简化 Keras LSTM 模型

我有以下使用功能 API 的 Keras LSTM 模型:

model = Sequential()
model.add(Lambda(lambda x: x,input_shape=(timestep,n_feature)))
output = model.output
output = LSTM(8)(output)
output = Dense(2)(output)

inputTensor = model.input
myModel = Model([inputTensor], output)
myModel.compile(loss='mean_squared_error', optimizer='adam')

myModel.fit([trainX], trainY, epochs=100, batch_size=1, verbose=2, validation_split = 0.1)
Run Code Online (Sandbox Code Playgroud)

该模型工作正常,但我认为我的架构中有多余的语法。例如,Lambda 层仅用于定义 input_shape,也许可以将其删除?上面的代码可以简化/清理吗(我想继续使用函数式API)?谢谢!

functional-programming lstm keras

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

文字特征多于1种时如何使用Keras嵌入层

我了解在IMDB审阅分类中只有一个文本功能的情况下如何使用Keras嵌入层。但是,当我遇到一个分类问题(其中有多个文本功能)时,我对如何使用嵌入层感到困惑。例如,我有一个具有2个文本特征“诊断文本”和“请求的过程”的数据集,并且标签是二进制类(1表示批准,0表示未批准)。在下面的示例中,与IMDB数据集不同,x_train具有2列“诊断”和“过程”。我是否需要创建2个嵌入层,其中一个用于诊断和过程?如果是这样,将需要更改哪些代码?

x_train = preprocessing.sequences.pad_sequences(x_train, maxlen=20)
x_test = preprocessing.sequences.pad_sequences(x_test, maxlen=20)
model = Sequential()
model.add(Embedding(10000,8,input_length=20)
model.add(Flatten())
model.add(Dense(1, activation='sigmoid')
model.compile(optimizer='rmsprop', loss='binary_crossentropy', metrics=['acc'])
model.fit(x_train, y_train, epochs=10, batch_size=32, validation_split=0.2)
Run Code Online (Sandbox Code Playgroud)

word2vec keras word-embedding

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

Keras 模型 - 功能 API - 向现有模型添加层

我正在尝试学习使用 Keras 模型 API 来修改经过训练的模型,以便随时随地对其进行微调:

一个非常基本的模型:

inputs = Input((x_train.shape[1:]))
x = BatchNormalization(axis=1)(inputs)
x = Flatten()(x)
outputs = Dense(10, activation='softmax')(x)
model1 = Model(inputs, outputs)
model1.compile(optimizer=Adam(lr=1e-5), loss='categorical_crossentropy', metrics=['categorical_accuracy'])
Run Code Online (Sandbox Code Playgroud)

它的架构是

InputLayer -> BatchNormalization -> Flatten -> Dense

在对它进行一些训练批次之后,我想在 Flatten 和输出之间添加一些额外的 Dense 层:

x = Dense(32,activation='relu')(model1.layers[-2].output)
outputs = model1.layers[-1](x)
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我得到了这个:

ValueError:输入 0 与层密集_1 不兼容:输入形状的预期轴 -1 具有值 784 但得到形状(无,32)

有人可以解释一下发生了什么以及如何/是否可以向已经训练好的模型添加层?

谢谢

keras

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

没有MAX_LENGTH的AttentionDecoderRNN

从PyTorch Seq2Seq教程,http: //pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html#attention-decoder

我们看到注意机制严重依赖于MAX_LENGTH参数来确定输出维数attn -> attn_softmax -> attn_weights,即

class AttnDecoderRNN(nn.Module):
    def __init__(self, hidden_size, output_size, dropout_p=0.1, max_length=MAX_LENGTH):
        super(AttnDecoderRNN, self).__init__()
        self.hidden_size = hidden_size
        self.output_size = output_size
        self.dropout_p = dropout_p
        self.max_length = max_length

        self.embedding = nn.Embedding(self.output_size, self.hidden_size)
        self.attn = nn.Linear(self.hidden_size * 2, self.max_length)
        self.attn_combine = nn.Linear(self.hidden_size * 2, self.hidden_size)
        self.dropout = nn.Dropout(self.dropout_p)
        self.gru = nn.GRU(self.hidden_size, self.hidden_size)
        self.out = nn.Linear(self.hidden_size, self.output_size)
Run Code Online (Sandbox Code Playgroud)

进一步来说

self.attn = nn.Linear(self.hidden_size * 2, self.max_length)
Run Code Online (Sandbox Code Playgroud)

我理解MAX_LENGTH变量是减少no的机制.需要训练的参数AttentionDecoderRNN.

如果我们没有MAX_LENGTH预先决定.我们应该用什么值初始化attn图层? …

machine-translation recurrent-neural-network attention-model sequence-to-sequence pytorch

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

在预测期间从 Keras/Tensorflow 获得中间输出

假设我加载了 inception,我需要在分类之前提取最终描述符。所以给出这样一个简单的代码:

cnn = InceptionV3(weights='imagenet',
              include_top='False',
              pooling='avg')
cnn.predict(x, batch_size=32, verbose=0)
Run Code Online (Sandbox Code Playgroud)

如何在预测期间提取最后一层?

descriptor extraction neural-network keras tensorflow

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

Keras 'Tensor' 对象没有属性 'ndim'

我正在尝试实现一个连体网络(通过使用三元组损失方法)。我就是不能让它训练。经过多次尝试,我想我的问题出现在生成器中(我准备输入数据流用于训练),但到目前为止我无法定位问题。帮助!:)

这是我的模型定义(它基于 ResNet50)。

model = ResNet50(weights='imagenet')
model.layers.pop()
for layer in model.layers:
    layer.trainable = False
x = model.get_layer('flatten_1').output
model_out = Dense(128, activation='sigmoid',  name='model_out')(x)
new_model = Model(inputs=model.input, outputs=model_out)
Run Code Online (Sandbox Code Playgroud)

这里我定义了要训练的模型:

anchor_in = Input(shape=(224, 224, 3))
positive_in = Input(shape=(224, 224, 3))
negative_in = Input(shape=(224, 224, 3))

anchor_out = new_model(anchor_in)
positive_out = new_model(positive_in)
negative_out = new_model(negative_in)

merged_vector = concatenate([anchor_out, positive_out, negative_out], axis=-1)
# Define the model to be trained
siamese_model = Model(inputs=[anchor_in, positive_in, negative_in],
                      outputs=merged_vector)
siamese_model.compile(optimizer=Adam(lr=.001), loss=triplet_loss)
Run Code Online (Sandbox Code Playgroud)

能够训练模型。我需要使用生成器为它提供数据,这是我定义它的方式:

(请注意,我特意在每个文件夹中只放了 1 张图片只是为了开始。如果可以的话,我稍后会增加每个文件夹中的 # 个图片。)

def generator_three_imgs(): …
Run Code Online (Sandbox Code Playgroud)

machine-learning keras tensorflow convolutional-neural-network

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