Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.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/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
Python 将tensorflow数据集馈送到模型中_Python_Tensorflow_Keras_Tf.keras - Fatal编程技术网

Python 将tensorflow数据集馈送到模型中

Python 将tensorflow数据集馈送到模型中,python,tensorflow,keras,tf.keras,Python,Tensorflow,Keras,Tf.keras,我有一个具有102个特征的输入数据集,并有相应的二进制输出。输出为0或1,具体取决于102功能 输入: tf.Tensor( [-1.72999993e-01 -8.20000023e-02 3.38000000e-01 1.35000005e-01 ... 0.00000000e+00 2.00000009e-03], shape=(102,), dtype=float64) 输出: tf.Tensor([1], shape=(1,), dtype=int32) 我试图遵循这

我有一个具有102个特征的输入数据集,并有相应的二进制输出。输出为0或1,具体取决于102功能

输入:

tf.Tensor(
[-1.72999993e-01 -8.20000023e-02  3.38000000e-01  1.35000005e-01
  ...
  0.00000000e+00  2.00000009e-03], shape=(102,), dtype=float64)
输出:

tf.Tensor([1], shape=(1,), dtype=int32)
我试图遵循这一点,并创建了如下模型:

train_dataset = tf.data.Dataset.from_tensor_slices((train_x,tf.dtypes.cast(label_x, tf.int32)))
features, labels = next(iter(train_dataset))

model = tf.keras.Sequential([
  tf.keras.layers.Dense(10, activation=tf.nn.relu, input_shape=(102,)),  # input shape required
  tf.keras.layers.Dense(10, activation=tf.nn.relu),
  tf.keras.layers.Dense(1)
])

predictions = model(features)
但是,当我尝试运行时出现错误时:

---------------------------------------------------------------------------

InvalidArgumentError                      Traceback (most recent call last)

<ipython-input-12-d7be7f733930> in <module>()
      6 ])
      7 
----> 8 predictions = model(features)

7 frames

/usr/local/lib/python3.6/dist-packages/six.py in raise_from(value, from_value)

InvalidArgumentError: In[0] is not a matrix. Instead it has shape [102] [Op:MatMul]
---------------------------------------------------------------------------
InvalidArgumentError回溯(最后一次最近调用)
在()
6 ])
7.
---->8预测=模型(特征)
7帧
/raise_from(value,from_value)中的usr/local/lib/python3.6/dist-packages/six.py
[0]中的InvalidArgumentError:不是矩阵。相反,它有形状[102][Op:MatMul]

您需要调整创建数据集的批处理,或者调整模型中的输入形状,以适应尺寸

train\u x=np.arange(100,dtype=np.int32)
label_x=np.arange(100,dtype=np.int32)
train_dataset=tf.data.dataset.from_tensor_切片((train_x,label_x))。批次(10)
模型=tf.keras.Sequential([
tf.keras.layers.Dense(10,激活=tf.nn.relu,输入_形状=(1,),#需要输入形状
tf.keras.layers.Dense(10,活化=tf.nn.relu),
tf.keras.致密层(1)
])
对于要素,列_数据集中的标签:
pred=模型(特征[…,tf.newaxis])
打印(pred)
#tf张量(
#[[-21.829016]
# [-22.071556]
# [-22.314102]
# [-22.556648]
# [-22.799194]
# [-23.041737]
# [-23.284283]
# [-23.52683 ]
# [-23.76937 ]
#[-24.011917]],shape=(10,1),dtype=float32)

您需要调整创建数据集的批处理,或者调整模型中的输入形状,以适应尺寸

train\u x=np.arange(100,dtype=np.int32)
label_x=np.arange(100,dtype=np.int32)
train_dataset=tf.data.dataset.from_tensor_切片((train_x,label_x))。批次(10)
模型=tf.keras.Sequential([
tf.keras.layers.Dense(10,激活=tf.nn.relu,输入_形状=(1,),#需要输入形状
tf.keras.layers.Dense(10,活化=tf.nn.relu),
tf.keras.致密层(1)
])
对于要素,列_数据集中的标签:
pred=模型(特征[…,tf.newaxis])
打印(pred)
#tf张量(
#[[-21.829016]
# [-22.071556]
# [-22.314102]
# [-22.556648]
# [-22.799194]
# [-23.041737]
# [-23.284283]
# [-23.52683 ]
# [-23.76937 ]
#[-24.011917]],shape=(10,1),dtype=float32)

因为
input\u shape
将批量大小作为第一个参数。但您生成的数据集是整个数据集,而不是批处理数据集。尝试添加
tf.data.Dataset.from_tensor_slice((x_train,y_train)).batch(102)
或更改
input_shape=(None,)
如果您想支持任意输入形状,因为
input_shape
将批量大小作为第一个参数。但您生成的数据集是整个数据集,而不是批处理数据集。尝试添加
tf.data.Dataset.from_tensor_切片((x_列,y_列)).batch(102)
或更改
input_shape=(无,)
,如果您想支持任意输入形状