【问题标题】:python, TensorFlow and machine learningpython、TensorFlow和机器学习
【发布时间】:2019-12-29 22:09:41
【问题描述】:

我正在使用机器学习开发 TensorFlow。

我卡在step1step2

第一步:

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


【解决方案1】:

conv2d 需要形状为 [batch, in_height, in_width, in_channels](4 维形状)的输入张量,检查 X 的形状。

【讨论】:

    猜你喜欢
    • 2017-03-03
    • 2019-05-14
    • 2016-09-19
    • 2018-10-08
    • 2016-05-28
    • 2022-10-17
    • 2019-04-17
    • 2020-04-24
    • 1970-01-01
    相关资源
    最近更新 更多