Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Tensorflow 实验数据集_Tensorflow_Tf.keras - Fatal编程技术网

Tensorflow 实验数据集

Tensorflow 实验数据集,tensorflow,tf.keras,Tensorflow,Tf.keras,我有下面的代码,我正在尝试,这对培训工作很好 作为练习,我尝试将其转换为数据集并在数据集上进行训练,但没有成功 def gen_labels(series, nums): raw_labels=[] labels =[] for i in range(0,nums): sum = 0 for j in range(0,28): for k in range(0,28): sum+=(math.cos(series[i][j]

我有下面的代码,我正在尝试,这对培训工作很好

作为练习,我尝试将其转换为数据集并在数据集上进行训练,但没有成功

def gen_labels(series, nums):
  raw_labels=[]
  labels =[]
  for i in range(0,nums):
    sum = 0
    for j in range(0,28):
      for k in range(0,28):        
        sum+=(math.cos(series[i][j][k])+j*2-k*2)*(math.sin(series[i][j][k])+j*2-k*2)
    n = random.random()
    sum = sum+(n-0.5)*28*28*100
    raw_labels.append(sum)   
    if sum > 405000:
      sum = 1.0
    else:
      sum = 0.0
    labels.append(sum)  
  print(raw_labels)  
  return np.asarray(labels)

num_samples = 100
series = np.random.rand(num_samples,28,28)
labels = gen_labels(series,num_samples)

valid_series = np.random.rand(num_samples,28,28)
valid_labels = gen_labels(valid_series,num_samples)


input = tf.keras.layers.Input((28,28,1))
x = tf.keras.layers.Conv2D(64, (3,3), activation="relu")(input)
x = tf.keras.layers.Flatten()(x)

model = tf.keras.Model(input, x)
model.compile(loss='mse',
              optimizer='adam',
              metrics=['accuracy'])

history = model.fit(series, labels, epochs=30,verbose=2, validation_data = (valid_series, valid_labels))
我尝试了一些方法,例如尝试合并系列和标签,但没有成功:

train_ds = tf.data.Dataset.from_tensor_slices(series)
...
history = model.fit(train_ds, epochs=30,verbose=2, validation_data = vtrain_ds)
我最后一次尝试的是制作我的系列a(100,28,28,1)形状,并将结果存储在最后一个维度上

def gen_labels(series, nums):
  raw_labels=[]
  labels =[]
  series = np.expand_dims(series, axis=-1)
  for i in range(0,nums):
    sum = 0
    for j in range(0,28):
      for k in range(0,28):        
        sum+=(math.cos(series[i][j][k])+j*2-k*2)*(math.sin(series[i][j][k])+j*2-k*2)
    n = random.random()
    sum = sum+(n-0.5)*28*28*100
    raw_labels.append(sum)   
    if sum > 405000:
      sum = 1.0
    else:
      sum = 0.0
    labels.append(sum)
    series[i][j][k][0] = sum
  print(series)    
  return series 
但在培训时,我会得到: 警告:tensorflow:为输入KerasTensor传感器(type_spec=TensorSpec(shape=(None,28,28,1),dtype=tf.float32,name='input_6'),name='input_6',description=(由层'input_6'创建)构建了该模型,但在具有不兼容形状(28,28,1,1)的输入上调用了该模型 最初,我想做一些类似于timeseries的事情,我将使用map方法ie将最后一列放入一个单独的维度中

dataset = dataset.map(lambda w: (w[:-1], w[1:]))

如果我想在这种情况下使用数据集,您认为最好的方法是什么?

不确定数据是什么,但在创建数据集时需要指定标签,例如:
train\ds=tf.data.dataset.from\u tensor\u切片((系列,标签))

此外,如果这是一个二进制分类问题,使用
loss='binary\u crossentropy'
更合适

您还需要使用
data重塑数据。重塑(28,28,1)

最后,应该停止使用变量名,如
sum
input
。这些是保留关键字,在其中存储变量可能会导致意外结果

这样创建数据集应该是可行的。需要批处理数据集。在本例中,
系列
的形状为
(n_样本,28,28,1)


不确定数据是什么,但在创建数据集时需要指定标签,例如:
train\u ds=tf.data.dataset.from\u tensor\u切片((系列,标签))

此外,如果这是一个二进制分类问题,使用
loss='binary\u crossentropy'
更合适

您还需要使用
data重塑数据。重塑(28,28,1)

最后,应该停止使用变量名,如
sum
input
。这些是保留关键字,在其中存储变量可能会导致意外结果

这样创建数据集应该是可行的。需要批处理数据集。在本例中,
系列
的形状为
(n_样本,28,28,1)


谢谢,我真的很感谢你的总结和意见以及。我想知道是否有一个约定或一个已知关键字的列表我应该避免。关于数据。重塑(28,28,21)是一个系列。重塑(28,28,1)我尝试了28,28,1的系列,但它看起来很奇怪,所以我尝试了(100,28,28,1),这是没有成功的输入数,我目前正在检查数据集api,看看是否有什么是的,您应该将形状改为(100,28,28,1)。您还需要替换原始变量,如下所示:series=series.reformate(100,28,28,1)。至于命名,您可以在代码部分中看到保留关键字是橙色的。避免使用这些词。谢谢,我想我没有得到颜色,因为我的编辑会马上与pycharm核实。关于重塑,如果我做(100,28,28,1),tensorflow会抱怨拟合方法的形状是(28,28,1,1),但如果我不做重塑,它会抱怨形状是(28,28)编辑的我的答案。你需要批处理你的数据集。谢谢。我真的很感谢你对总和和输入的评论。我想知道是否有一个约定或一个已知关键字的列表我应该避免。关于数据。重塑(28,28,21)是一个系列。重塑(28,28,1)我尝试了28,28,1的系列,但它看起来很奇怪,所以我尝试了(100,28,28,1),这是没有成功的输入数,我目前正在检查数据集api,看看是否有什么是的,您应该将形状改为(100,28,28,1)。您还需要替换原始变量,如下所示:series=series.reformate(100,28,28,1)。至于命名,您可以在代码部分中看到保留关键字是橙色的。避免使用这些词。谢谢,我想我没有得到颜色,因为我的编辑会马上与pycharm核实。关于重塑,如果我做(100,28,28,1),tensorflow会抱怨拟合方法的形状是(28,28,1,1),但如果我不做重塑,它会抱怨形状是(28,28)编辑的我的答案。您需要批处理数据集。
train_ds = tf.data.Dataset.from_tensor_slices((series,labels)).batch(5)
valid_ds = tf.data.Dataset.from_tensor_slices((valid_series,valid_labels)).batch(5)