Python 如何为神经网络创建一个最小且可重复的示例?

Python 如何为神经网络创建一个最小且可重复的示例?,python,tensorflow,keras,neural-network,pytorch,Python,Tensorflow,Keras,Neural Network,Pytorch,我想知道如何为堆栈溢出创建一个最小且可复制的深度学习示例。我想确保人们有足够的信息来查明我的代码的确切问题。仅仅提供回溯就足够了吗 c:\users\samuel\appdata\local\programs\python\python35\lib\site packages\keras\engine\training\u utils.py 在标准化中输入数据(数据、名称、形状、检查批处理轴、异常前缀) 135':预期“+名称[i]+”具有形状”+ 136 str(shape)+'但是得到了带有

我想知道如何为堆栈溢出创建一个最小且可复制的深度学习示例。我想确保人们有足够的信息来查明我的代码的确切问题。仅仅提供回溯就足够了吗

c:\users\samuel\appdata\local\programs\python\python35\lib\site packages\keras\engine\training\u utils.py
在标准化中输入数据(数据、名称、形状、检查批处理轴、异常前缀)
135':预期“+名称[i]+”具有形状”+
136 str(shape)+'但是得到了带有shape的数组'+
-->137 str(数据_形))
138返回数据
139
还是我应该简单地发布错误消息

值错误:检查输入时出错:预期密集\u 1\u输入具有形状 (4,)但得到了形状为(1,)的数组


以下是制作一个可重复的、最少深度学习示例的一些技巧。无论是对于
Keras
Pytorch
,还是
Tensorflow
,这都是一个很好的建议

  • 我们无法使用您的数据,但在大多数情况下,这并不重要。我们需要的只是正确的形状。
    • 使用随机生成的正确形状的数字。
      • 例如,
        np.random.randint(0,256,(100,30,30,3)
        100张大小为30x30的彩色图片
      • 例如,
        np.random.choice(np.arange(10),100)
        10类100个样本
  • 我们不需要看到你的整个管道。
    • 只提供运行代码的最低要求。
  • 充分利用
    Keras
    及其调试功能。
    • 包括回溯。它很可能会指出确切的问题
  • 神经网络都是关于拟合正确的形状。
    • 至少应始终提供输入形状。
  • 使其易于测试和复制。
    • 发布您的整个神经网络架构。
    • 包括库导入。定义所有变量。
以下是一个完美最小且可重复的示例:


我有一个错误。当我运行此代码时,它会给我以下错误:

ValueError:检查目标时出错:预期稠密_2具有形状(10),但获得具有形状的数组

“这是我的体系结构,包含生成的数据:”

将numpy导入为np
进口干酪
从keras.models导入顺序
从keras.layers导入稠密、平坦、Conv2D、MaxPoolig2D
xtrain,xtest=np.random.rand(2,1000,30,30,3)
ytrain,ytest=np.random.choice(np.arange(10),2000)。重塑(2100)
模型=顺序([
Conv2D(32,内核大小=(3,3),激活='relu',输入形状=xtrain.shape[1:]),
Conv2D(64,(3,3),activation='relu'),
MaxPoolig2D(池大小=(2,2)),
展平(),
稠密(128,活化='relu'),
密集型(10,激活='softmax'))
model.compile(loss=keras.loss.categorical_交叉熵,
optimizer=keras.optimizers.Adam(),
指标=[‘准确度’])
模型拟合(xtrain、ytrain、,
批次尺寸=16,
纪元=10,
验证_数据=(xtest,ytest))