【发布时间】:2019-12-29 22:09:41
【问题描述】:
我正在使用机器学习开发 TensorFlow。
我卡在step1和step2
第一步:
X = X/255.0
TypeError: /: 'list' 和 'float' 的操作数类型不受支持
第二步:
model.add(Conv2D(64, (3,3), input_shape=X.shape[1:])
'list' 对象没有属性'shape'
编辑 25/08-2019 13:44
第一步:X=np.array(X)
第二步出现新错误
第二步:
conv2d 层的输入 0 与该层不兼容:预期 ndim=4,发现 ndim=1。收到的完整形状:[无]
编辑 25/08-2019 19:26 我的完整代码:
import os
os.environ["CUDA_VISIBLE_DEVICES"]="-1"
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout, Activation, Flatten, Conv2D, MaxPooling2D
import pickle
import numpy as np
X = pickle.load(open("x.pickle", "rb"))
y = pickle.load(open("y.pickle", "rb"))
X = np.array(X)
X = X/255.0
#x.shape=np.array([x])
#X = np.asarray(x).shape[1:]
print(X.shape)
model = Sequential()
model.add(Conv2D(64, (3,3), input_shape=X.shape[1:]))
#model.add(Conv2D(64, (3,3), input_shape=x.shape[1:]))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Conv2D(64, (3,3)))
model.add(Activation("relu"))
model.add(MaxPooling2D(pool_size=(2,2)))
model.add(Flatten())
model.add(Dense(64))
model.add(Dense(1))
model.add(Activation('sigmoid'))
model.compile(loss="binary_crossentropy", optimizer="adam", metrics=["accuracy"])
model.fit(X, y, batch_size=32, epochs=1, validation_split=0.1)
X.Shape = (24946,)
【问题讨论】:
-
在第 1 步之前尝试
X=np.array(X)
标签: python tensorflow machine-learning