神经网络中具有不同样本量的多个输入

火腿82

我正在研究一个特定的神经网络,该网络有两个不同的输入:

  • MNIST数据集,训练集是[50000,784]张量
  • 具有TensorShape([Dimension(28)])]的辅助向量

当我定义并运行模型时,如下所示

from tensorflow.examples.tutorials.mnist import input_data
from keras.layers import Input, Dense, Lambda
from keras.models import Model
from keras.objectives import binary_crossentropy
from keras.callbacks import LearningRateScheduler
import numpy as np
import keras
import matplotlib.pyplot as plt
import keras.backend as K
import tensorflow as tf
from keras.callbacks import LambdaCallback

def load_dataset(flatten=False):
    (X_train, y_train), (X_test, y_test) = keras.datasets.mnist.load_data()
    # normalize x
    X_train = X_train.astype(float) / 255.
    X_test = X_test.astype(float) / 255.
    # we reserve the last 10000 training examples for validation
    X_train, X_val = X_train[:-10000], X_train[-10000:]
    y_train, y_val = y_train[:-10000], y_train[-10000:]
    if flatten:
        X_train = X_train.reshape([X_train.shape[0], -1])
        X_val = X_val.reshape([X_val.shape[0], -1])
        X_test = X_test.reshape([X_test.shape[0], -1])
    return X_train, y_train, X_val, y_val, X_test, y_test
X_train, y_train, X_val, y_val, X_test, y_test = load_dataset(True)

original_dim=784
m = 100 #batchsize
n_z =8
n_epoch = 10
n_d =int(n_z*(n_z - 1 )/2) #or n_d=28

A_vec = K.random_normal(shape=(n_d,), mean=0., stddev=1.)
image_inputs = Input(shape=(784,))
A_inputs = Input(shape=(n_d,))
inputs = keras.layers.concatenate([image_inputs, A_inputs])

h_q1 = Dense(512, activation='relu')(inputs)
h_q2 = Dense(256, activation='relu')(h_q1)
h_q3 = Dense(128, activation='relu')(h_q2)
h_q4= Dense(64, activation='relu')(h_q3)
mu = Dense(n_z, activation='linear')(h_q4)
log_sigma = Dense(n_z, activation='linear')(h_q4)

 ............

运行模型后,

vae.fit([X_train,A_vec], outputs,shuffle=True, batch_size=m, epochs=n_epoch)

我收到此错误:

ValueError:所有输入数组(x)都应具有相同数量的样本。得到的数组形状:[(50000,784),TensorShape([Dimension(28)])]

这意味着我的输入大小不同。当它们具有不同的大小(或形状)时,如何使用差异输入?

几何

输入必须具有相同的大小,例如(50000,748)和(50000,28),即每个样本一个。尝试创建一个numpy的阵列大小(50000,28) :A_vecnumpy.random.normal(0., 1.0, (50000, 28)

或者,如果要为所有向量都使用相同的向量,则创建它并重复50000次。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Keras中的神经网络具有两种不同的输入类型-图像和值

sklearn中具有多个输出的神经网络

神经网络样本

如何制作具有不同输入形状的批次的神经网络

具有分类变量(枚举)作为输入的神经网络

TensorFlow:具有非图像输入的卷积神经网络

具有不同大小图像的Tensorflow卷积神经网络

LDA:类别中的不同样本量

具有交叉验证的神经网络模型的多个指标

在QA系统中训练具有不同长度句子的神经网络

Julia Flux,神经网络中具有不同维度的图像

是否可以在Vowpal Wabbit中训练具有多个隐藏层的神经网络?

多个神经网络,每个神经网络一个输出还是一个具有多个输出?

神经网络中的输入形状和神经元数量可以不同吗?

具有恒定输入的神经网络层会学习权重吗?

具有8个以上输入节点的神经网络XOR

如何处理具有不同形状的属性以训练神经网络

神经网络为相同的输入提供不同的输出

具有多个变量的时间序列的递归神经网络-TensorFlow

在实现具有多个输出的神经网络时遇到keras的错误

如何使用pytorch制作具有多个输出的神经网络?

Shapiro Wilk检验中具有相同结果的两个不同样本

在R中单个隐藏层的大小不同的情况下交叉验证多个神经网络

神经网络输入形状

神经网络的图像输入

有没有一种方法可以针对R中的不同样本量复制函数?

为什么具有S型神经网络的代码与具有softmax_cross_entropy_with_logits的代码如此不同?

在 Pytorch 中优化具有多任务目标的神经网络

R 中的 nnet 包仅用于拟合具有单个隐藏层的神经网络吗?