将Tensorflow Keras模型移植到Tensorflow版本1.14.0时出错

时间:2019-10-02 10:39:03

标签: python tensorflow keras

我最近编写了一个小NN来对我玩井字游戏。 这确实是我自己写的第一个NN。 今天,我想通过Google Collab展示给朋友,但出现此错误:

    model.fit(train_layout, train_place, epochs=3000)
        ^
SyntaxError: invalid syntax

我以前从未遇到此错误。我认为这与使用1.14.0版的Google Collag和使用1.13.1版的我有关

这是我的代码:

import tensorflow as tf
from tensorflow import keras

model = keras.Sequential([
        keras.layers.Dense(9, activation=tf.nn.tanh),
        keras.layers.Dense(128, activation=tf.nn.relu),
        keras.layers.Dense(256, activation=tf.nn.relu),
        keras.layers.Dense(96, activation=tf.nn.relu),
        keras.layers.Dense(9, activation=tf.nn.softmax)
        ])

gd = tf.train.GradientDescentOptimizer(0.2)

model.compile(gd, loss='mean_squared_error', metrics=['accuracy'])


model.fit(train_layout, train_place, epochs=3000)

训练数据如下:

train_layout = np.array([[0, 0, 0, 0, 1, 0, 0, 0, 0]])
train_place = np.array([[0, 1, 0, 0, 0, 0, 0, 0, 0]])

(当然只有一个数据块= D)

感谢您的提前帮助 -nailuj05

3 个答案:

答案 0 :(得分:0)

您实际上给了自己一个答案。

  

我以前从未遇到此错误。我认为这与使用1.14.0版的Google Collag和使用1.13.1版的我有关

我认为解决此问题的一种方法是保存json模型并手动检查操作员姓名(如果补丁中已更改)。如果您的模型是.h5,我不知道有什么解决方案。

答案 1 :(得分:0)

首先,我在collab中复制粘贴的ur代码,但遇到的错误无法建立密集的层。

第二,对于这样一个简单的井字游戏问题,仅抛弃各种尺寸的致密层并不是一个好主意。...我确定您会遇到过拟合...

最重要的是...。您忘记了输入层的大小...这可能是导致错误的根本原因...

答案 2 :(得分:0)

如果您看到错误,它会显示syntax error,这主要是因为您忘记了代码中要写的内容,例如方括号,逗号或有时是空格等。我不认为这是因为张量流版本。我可以在TF 1.14和1.13的colab中运行此代码,它只是显示了一个错误,可以通过在第一层之前定义输入形状来消除该错误。 例如

model = keras.Sequential([
        keras.layers.Flatten(input_shape=(28, 28)),
        keras.layers.Dense(9, activation=tf.nn.tanh),
        keras.layers.Dense(128, activation=tf.nn.relu),
        keras.layers.Dense(256, activation=tf.nn.relu),
        keras.layers.Dense(96, activation=tf.nn.relu),
        keras.layers.Dense(9, activation=tf.nn.softmax)
        ])