Tensorflow Fit 以代码 1 退出,没有任何错误消息
Tensorflow Fit exits with code 1 without any error message
我是张量流的新手。我想做的是训练一个简单的神经网络来解决牛顿 2 问题,猜测给定质量和加速度值的力值。输入层由两个神经元组成,分别是质量值和加速度值。输出层就是力
程序只是给出了一个警告,打印了一些我猜测输出的数据,然后以代码 1 退出。我无法尝试任何方法来解决这个问题。因为正如我之前所说,我是 tensorflow 的新手,没有任何错误信息。
代码如下:
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.models import Sequential
import numpy as np
import pickle
X = pickle.load(open("Newton2_X.pickle", "rb"))
y = pickle.load(open("Newton2_y.pickle", "rb"))
model = Sequential()
# model.add(Flatten())
model.add(Dense(2, activation="relu"))
model.add(Dense(128, activation="relu"))
model.add(Dense(1, activation="softmax"))
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(X, y, epochs=3, validation_split=0.1, batch_size=100)
这里是 pickle 文件:
https://drive.google.com/drive/folders/1FkKmY4px8oQJkbHYb_Z4y4Lnb1EazkvP?usp=sharing
在这部分代码之后,我有一些额外的行让网络猜测一个新值和一些打印行。这些行不执行。事实上,我发现 'problem' 必须在 model.fit(...) 部分。因为该行之后没有行被执行。
这是我从程序中得到的完整警告消息:
WARNING: Logging before flag parsing goes to stderr.
W0816 07:02:05.292823 17652 deprecation.py:506] From C:\Users\SABA\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\ops\init_ops.py:1251: calling VarianceScaling.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.
Instructions for updating:
Call initializer instance with the dtype argument instead of passing it to the constructor
6, 0.2142802901764338, 0.26114980919201514, 0.2451221454091551, 0.19920049739052853, ...
有几处需要调整。
首先,我不认为数据是你认为的形状。你有:
X.shape # (45000, 2, 2, 1)
y
是一个包含 90,000 个元素的平面列表。
其次,您正在预测一个数字(因此是回归),但您试图使用 'sparse_categorical_crossentropy' 作为分类问题的损失函数。
我可以通过简单地将数据切割成我们需要的形状来让你的代码达到 运行 但显然它不会训练,因为我没有配对正确的 Xs 和 ys。你需要在数据中正确地解决这个问题
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.models import Sequential
import numpy as np
import pickle
### TODO - sort this out!
X = pickle.load(open("Newton2_X.pickle", "rb"))[:,0,:,0]
y = np.array(pickle.load(open("Newton2_y.pickle", "rb")))[:45000]
####
model = Sequential()
# model.add(Flatten())
model.add(Dense(2, activation="relu"))
model.add(Dense(128, activation="relu"))
model.add(Dense(1, activation="softmax"))
model.compile(optimizer='adam',
loss='mse')
model.fit(X, y, epochs=3, validation_split=0.1, batch_size=100)
我是张量流的新手。我想做的是训练一个简单的神经网络来解决牛顿 2 问题,猜测给定质量和加速度值的力值。输入层由两个神经元组成,分别是质量值和加速度值。输出层就是力
程序只是给出了一个警告,打印了一些我猜测输出的数据,然后以代码 1 退出。我无法尝试任何方法来解决这个问题。因为正如我之前所说,我是 tensorflow 的新手,没有任何错误信息。
代码如下:
from tensorflow.keras.layers import Dense, Flatten
from tensorflow.keras.models import Sequential
import numpy as np
import pickle
X = pickle.load(open("Newton2_X.pickle", "rb"))
y = pickle.load(open("Newton2_y.pickle", "rb"))
model = Sequential()
# model.add(Flatten())
model.add(Dense(2, activation="relu"))
model.add(Dense(128, activation="relu"))
model.add(Dense(1, activation="softmax"))
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(X, y, epochs=3, validation_split=0.1, batch_size=100)
这里是 pickle 文件: https://drive.google.com/drive/folders/1FkKmY4px8oQJkbHYb_Z4y4Lnb1EazkvP?usp=sharing
在这部分代码之后,我有一些额外的行让网络猜测一个新值和一些打印行。这些行不执行。事实上,我发现 'problem' 必须在 model.fit(...) 部分。因为该行之后没有行被执行。
这是我从程序中得到的完整警告消息:
WARNING: Logging before flag parsing goes to stderr.
W0816 07:02:05.292823 17652 deprecation.py:506] From C:\Users\SABA\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\ops\init_ops.py:1251: calling VarianceScaling.__init__ (from tensorflow.python.ops.init_ops) with dtype is deprecated and will be removed in a future version.
Instructions for updating:
Call initializer instance with the dtype argument instead of passing it to the constructor
6, 0.2142802901764338, 0.26114980919201514, 0.2451221454091551, 0.19920049739052853, ...
有几处需要调整。
首先,我不认为数据是你认为的形状。你有:
X.shape # (45000, 2, 2, 1)
y
是一个包含 90,000 个元素的平面列表。
其次,您正在预测一个数字(因此是回归),但您试图使用 'sparse_categorical_crossentropy' 作为分类问题的损失函数。
我可以通过简单地将数据切割成我们需要的形状来让你的代码达到 运行 但显然它不会训练,因为我没有配对正确的 Xs 和 ys。你需要在数据中正确地解决这个问题
from tensorflow.keras.layers import Dense, Flatten from tensorflow.keras.models import Sequential import numpy as np import pickle ### TODO - sort this out! X = pickle.load(open("Newton2_X.pickle", "rb"))[:,0,:,0] y = np.array(pickle.load(open("Newton2_y.pickle", "rb")))[:45000] #### model = Sequential() # model.add(Flatten()) model.add(Dense(2, activation="relu")) model.add(Dense(128, activation="relu")) model.add(Dense(1, activation="softmax")) model.compile(optimizer='adam', loss='mse') model.fit(X, y, epochs=3, validation_split=0.1, batch_size=100)