Python 如何确定简单卷积神经网络的参数

Python 如何确定简单卷积神经网络的参数,python,machine-learning,tensorflow,conv-neural-network,Python,Machine Learning,Tensorflow,Conv Neural Network,我想用我自己的数据集来训练CNN(它不是用于图像分类的),但我是CNN的新手,示例代码中的参数真的让我困惑。我试图更改参数,但失败了 我的训练数据中的每个样本是205*8=1640(8行205列), I只有两个类(目标和非目标) 但我不确定如何设置下面代码的参数以适合我的数据集 这是源代码的一部分(我借用了它) 此代码用于将28*28分钟的图像分为10类 n_classes = 2 batch_size = 128 x = tf.placeholder('float', [None, 1640

我想用我自己的数据集来训练CNN(它不是用于图像分类的),但我是CNN的新手,示例代码中的参数真的让我困惑。我试图更改参数,但失败了

我的训练数据中的每个样本是205*8=1640(8行205列), I只有两个类(目标和非目标)

但我不确定如何设置下面代码的参数以适合我的数据集

这是源代码的一部分(我借用了它)

此代码用于将28*28分钟的图像分为10类

n_classes = 2
batch_size = 128

x = tf.placeholder('float', [None, 1640])
y = tf.placeholder('float')

def conv2d(x, W):
    return tf.nn.conv2d(x, W, strides=[1,1,1,1], padding='SAME')

def maxpool2d(x):
#                           size of window      movement of window
    return tf.nn.max_pool(x, ksize=[1,2,2,1], strides=[1,2,2,1], padding='SAME')

def convolutional_neural_network(x):
    weights = {'W_Conv1': tf.Variable(tf.random_normal([5, 5, 1, 32])),
               'W_Conv2': tf.Variable(tf.random_normal([5, 5, 32, 64])),
               'W_fc': tf.Variable(tf.random_normal([7*7*64, 1024])),
               'out': tf.Variable(tf.random_normal([1024, n_classes]))}

    biases = {'b_Conv1': tf.Variable(tf.random_normal([32])),
              'b_Conv2': tf.Variable(tf.random_normal([64])),
              'b_fc': tf.Variable(tf.random_normal([64])),
              'out': tf.Variable(tf.random_normal([n_classes]))}

x = tf.reshape(x, shape=[-1, 28, 28, 1])

conv1 = conv2d(x, weights['W_Conv1'])
conv1 = maxpool2d(conv1)

conv2 = conv2d(conv1, weights['W_Conv2'])
conv2 = maxpool2d(conv2)

fc = tf.reshape(conv2, [-1, 7*7*64])
fc = tf.nn.relu(tf.matmul(fc, weights['W_fc']) + biases['b_fc'])

output = tf.matmul(fc, weights['out']) + biases['out']

return output

您提供的代码只是创建图形,您没有任何“计算参数”的训练循环。你应该阅读TF教程,因为这就是它们真正的内容。除非问题是调整模块的大小以适应您的数据?@lejlot,是的,我的问题是关于模块的大小。此示例代码用于训练28x28图像,但我的数据是205x8。您认为“我已尝试更改参数但失败”是什么意思?有什么问题?你得到一个错误吗?您如何提供数据?你重塑了它吗?你可能是想为模型的结构找到好的参数,它们更像是超参数。关于神经网络设计的指导恐怕是离题的,因为它主要集中在机器学习和机器学习模型工程上。你能解释一下数据是什么吗?。权重(内核)可以可视化为“火炬”,扫描输入的特征。这里的火炬是一个长方形的,你可以根据你想在某个时间点“聚焦”的区域大小来决定火炬的大小。因为你的数据不是图像,你需要定义输入是什么以及你想如何分析。例如,在文本数据分析中,使用CNN时,过滤器的宽度与输入文本的宽度相同。您提供的代码只是创建图形,您没有任何“计算参数”的训练循环。你应该阅读TF教程,因为这就是它们真正的内容。除非问题是调整模块的大小以适应您的数据?@lejlot,是的,我的问题是关于模块的大小。此示例代码用于训练28x28图像,但我的数据是205x8。您认为“我已尝试更改参数但失败”是什么意思?有什么问题?你得到一个错误吗?您如何提供数据?你重塑了它吗?你可能是想为模型的结构找到好的参数,它们更像是超参数。关于神经网络设计的指导恐怕是离题的,因为它主要集中在机器学习和机器学习模型工程上。你能解释一下数据是什么吗?。权重(内核)可以可视化为“火炬”,扫描输入的特征。这里的火炬是一个长方形的,你可以根据你想在某个时间点“聚焦”的区域大小来决定火炬的大小。因为你的数据不是图像,你需要定义输入是什么以及你想如何分析。例如,在文本数据分析中,过滤器的宽度与使用CNN时输入文本的宽度相同。