我在过去的一天中了解了LSTM's ,然后我决定查看一个用于Keras创建它的教程。我看了几个教程,它们都有一个衍生的
model = Sequential()
model.add(LSTM(10, input_shape=(1,1)))
model.add(Dense(1, activation='linear'))
model.compile(loss='mse', optimizer='adam')
X,y = get_train()
model.fit(X, y, epochs=300, shuffle=False, verbose=0)
Run Code Online (Sandbox Code Playgroud)
然后他们预测使用
model.predict(X, verbose=0)
Run Code Online (Sandbox Code Playgroud)
我的问题是:您是否必须给出先前的预测以及输入和细胞状态才能使用 LSTM 预测下一个结果?另外,10 代表什么model.add(LSTM(10, input_shape(1,1))?
我正在用 Swift 编写这个简单的太空游戏,直到遇到检测碰撞的问题。在浏览了论坛、教程等之后,我尝试通过声明位掩码来实现冲突,如下所示:
对象1
enemy?.physicsBody = SKPhysicsBody(circleOfRadius: ((enemy?.size.width)!/2))
enemy?.physicsBody?.categoryBitMask = enemyBitMask
enemy?.physicsBody?.contactTestBitMask = bulletBitMask
enemy?.physicsBody?.collisionBitMask = 0
Run Code Online (Sandbox Code Playgroud)
对象2
bullet?.physicsBody? = SKPhysicsBody(rectangleOf: (bullet?.size)!)
bullet?.physicsBody?.categoryBitMask = bulletBitMask
bullet?.physicsBody?.contactTestBitMask = enemyBitMask
bullet?.physicsBody?.collisionBitMask = 0
bullet?.physicsBody?.usesPreciseCollisionDetection = true
Run Code Online (Sandbox Code Playgroud)
我还在
func didBegin(_ contact: SKPhysicsContact) { print("Hello") }
Run Code Online (Sandbox Code Playgroud)
这是我配置精灵的方法:
func CreateNewEnemy() {
var enemy : SKSpriteNode?
let moveEnemyDown = SKAction.repeatForever(SKAction.moveBy(x: 0, y: -1, duration: 0.01))
let rotateEnemy = SKAction.repeatForever(SKAction.rotate(byAngle: 25, duration: 5))
let enemyXpos = randomNum(high: self.frame.size.width/2, low: -1 * self.frame.size.width/2)
let enemyYpos = randomNum(high: 2.5*self.frame.size.height, …Run Code Online (Sandbox Code Playgroud) 所以我想自己为Sequentialkeras 模型设置权重。为了获得权重的数量,我将相邻层的节点数相乘。
这是我的代码:
model.add(Dense(units=3, activation='relu', input_dim=4))
model.add(Dense(3, activation='relu'))
model.add(Dense(5, activation='softmax'))
weights_count = []
weights_count.append(4*3)
weights_count.append(3*3)
weights_count.append(3*5)
weights = []
for count in weights_count:
curr_weights = []
for i in range(count):
curr_weights.append(random.random())
weights.append(curr_weights)
model.set_weights(weights)
Run Code Online (Sandbox Code Playgroud)
此代码生成此错误:
ValueError:形状必须具有相同的等级,但对于具有输入形状的“分配”(操作:“分配”)为 2 和 1:[4,3]、[12]。
为什么会这样?