小编Ioa*_*ios的帖子

在 Keras ImageDataGenerator 或 flow_from_directory 中裁剪图像的中心

我正在尝试使用 keras 在图像数据生成器中裁剪图像的中心。我有大小的图像,192x192我想裁剪它们的中心,以便输出批次150x150或类似的东西。

我可以在 Keras 中立即执行此操作ImageDataGenerator吗?我想不会,因为我看到target_sizedatagenerator 中的参数破坏了图像。

我找到了这个随机裁剪的链接:https : //jkjung-avt.github.io/keras-image-cropping/

我已经修改了作物如下:

def my_crop(img, random_crop_size):
  if K.image_data_format() == 'channels_last':
    # Note: image_data_format is 'channel_last'
    assert img.shape[2] == 3
    height, width = img.shape[0], img.shape[1]
    dy, dx = random_crop_size #input desired output size
    start_y = (height-dy)//2
    start_x = (width-dx)//2
    return img[start_y:start_y+dy, start_x:(dx+start_x), :]
  else:
      assert img.shape[0] == 3
      height, width = img.shape[1], img.shape[2]
      dy, dx = random_crop_size  # input desired output size
      start_y = …
Run Code Online (Sandbox Code Playgroud)

machine-learning image-processing conv-neural-network keras convolutional-neural-network

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

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

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

说我有一个没有标题的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
查看次数

在函数式 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
查看次数

在tf.keras模型中使用tensorflow操作

我正在尝试使用预先训练的模型,添加一些新的图层和操作并执行训练课程tensorflow.因此,我对tf.keras.applications.*命名空间进行了详细说明,并开始在那里使用一些已实现的模型.

加载基本模型后,我将添加这些新图层,如下所示:

x = base_model.output
# this line seems to cause my error
x = tf.reshape(x, [-1, 1]) 
# using this line solves the issue
# tf.keras.layers.Flatten()(x) #
x = tf.keras.layers.Dense(1024, activation="relu")(x)
x = tf.keras.layers.Dense(5, activation="softmax")(x)
Run Code Online (Sandbox Code Playgroud)

当我现在tf.keras.models.Model(...)从Tensor 创建一个新的时x,我收到此错误消息:

Output tensors to a Model must be the output of a TensorFlow `Layer`
(thus holding past layer metadata).
Found: Tensor("dense_27/Softmax:0", shape=(?, 3), dtype=float32)
Run Code Online (Sandbox Code Playgroud)

我猜这个异常是因为tf.*tf.keras模型中使用了一个操作引起的.在这种情况下,我可以轻松地使用keras alterantive,但现在我开始想知道是否存在一种解决方法,无论如何在keras模型中使用张量操作.还是我完全限制使用tf.keras.layer.*操作?

keras tensorflow

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

LSTM 如何使用词嵌入进行文本分类,Keras 中的示例

我试图了解 LSTM 如何用于对包含预训练词嵌入的文本句子(词序列)进行分类。我正在阅读有关 lstm 的一些帖子,但对详细过程感到困惑:

在 keras 上使用 LSTM 进行 IMDB 分类:https: //machinelearningmastery.com/sequence-classification-lstm-recurrent-neural-networks-python-keras/ Colah 对 LSTM 的解释:http : //colah.github.io/posts/2015- 08-了解-LSTMs/

举个例子,我想用lstm对影评进行分类,每条影评固定长度为500字。我正在使用预先训练的词嵌入(来自 fasttext),它为每个词提供 100 维向量。输入 LSTM 的 Xt 的尺寸是多少?LSTM 是如何训练的?如果每个 Xt 是一个 100 维向量代表评论中的一个词,我是否一次将评论中的每个词提供给 LSTM?LSTM 在每个 epoch 中会做什么?我真的很困惑...

来自 Colah 博客的 lstm 单元

# LSTM for sequence classification in the IMDB dataset
import numpy
from keras.datasets import imdb
from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from keras.layers.embeddings import Embedding
from keras.preprocessing import sequence
# fix random seed for reproducibility …
Run Code Online (Sandbox Code Playgroud)

machine-learning deep-learning lstm keras tensorflow

5
推荐指数
2
解决办法
4671
查看次数

Google Colab:从本地上传 Pytorch 模型后“无法连接到运行时”

我正在使用一种简单(不一定有效)的方法来保存 Pytorch 模型。

import torch
from google.colab import files

torch.save(model, filename) # save a trained model on the VM
files.download(filename) # download the model to local

best_model = files.upload() # select the model just downloaded
best_model[filename] # access the model
Run Code Online (Sandbox Code Playgroud)

Colab 在执行最后一行期间断开连接,并且点击RECONNECTTab 总是显示ALLOCATING-> CONNECTING(失败,左下角显示“无法连接到运行时”消息)-> RECONNECT。同时,执行任何一个单元格都会给出错误消息“无法执行单元格,无法向运行时发送执行消息:[对象关闭事件]”

我知道它与最后一行有关,因为我可以成功连接到其他不执行该操作的 google 帐户。

为什么会发生?似乎已执行最后一行的 google 帐户无法再连接到运行时。

编辑:

一晚后,我可以在会话到期后重新连接 google 帐户。我只是尝试了评论中的方法,发现只有files.upload()Pytorch 模型会导致问题。上传完成后,Colab 会断开连接。

data-persistence pytorch google-colaboratory

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

使用TensorFlow和Keras进行图像分类

from keras.preprocessing.image import ImageDataGenerator
from keras.models import Sequential
from keras.layers import Conv2D, MaxPooling2D
from keras.layers import Activation, Dropout, Flatten, Dense
from keras import backend as K


# dimensions of our images.
img_width, img_height = 150, 150


train_data_dir = 'flowers/train'
validation_data_dir = 'flowers/validation'
nb_train_samples = 2500
nb_validation_samples = 1000
epochs = 20
batch_size = 50


if K.image_data_format() == 'channels_first':
    input_shape = (3, img_width, img_height)
else:
    input_shape = (img_width, img_height, 3)


model = Sequential()
model.add(Conv2D(32, (3, 3), input_shape=input_shape))
model.add(Activation('relu'))
model.add(MaxPooling2D(pool_size=(2, 2)))


model.add(Conv2D(32, …
Run Code Online (Sandbox Code Playgroud)

python deep-learning conv-neural-network keras tensorflow

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

只为 Keras(TF 后端)脚本分配一个 GPU

我有一台带有 2 个 GPU 的机器。

通常,一个用于生产(即使用已经训练的模型进行预测),而另一个用于训练和试验新模型。

当我使用 theano 时,通过指定如下标志,我可以在一个 GPU 上运行我的脚本没有问题

THEANO_FLAGS="device=cuda0" training_script.py THEANO_FLAGS="device=cuda1" prediction_script.py

有没有一种简单的方法可以在 Keras 中使用 Tensorflow 后端做同样的事情?默认行为似乎映射了一个会话的所有 GPU 的所有内存

(请注意,我并不真正关心每个脚本是否单独映射整个 GPU,即使它们可以使用更少的内存工作)

gpu machine-learning python-3.x keras tensorflow

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

“HTTP 状态 500 内部服务器错误:UnsupportedOperationException:从文件创建流时出错”- SentinelAPI

我正在使用 SentinelAPI(来自 sentinelsat)从哨兵下载卫星图像。我正在使用的代码(不完全):

from sentinelsat import SentinelAPI
api = SentinelAPI(user, password, 'https://scihub.copernicus.eu/dhus')
products = api.query(fprintile.centroid.wkt,
                                 date=(Idate, Edate),
                                 platformname='Sentinel-2',
                                 processinglevel=levels,
                                 cloudcoverpercentage=(0, 10)
                                 )
Run Code Online (Sandbox Code Playgroud)

但是,有时我会收到错误消息(示例):

type error: HTTP status 500 Internal Server Error: UnsupportedOperationException : Error creating stream from file /mnt/s2bl1c/dhus/incoming/x5/x6/x1/S2B_MSIL1C_20210428T182909_N0300_R027_T11SMT_20210428T214807.zip
Run Code Online (Sandbox Code Playgroud)

需要强调的是,该错误不是永久性的,也就是说,如果我尝试在其他时间下载它可能会成功。

我很想知道这个问题的解决方案,或者另一种通过 API 访问从哨兵下载产品的方法

python sentinelsat sentinel2

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