我正在尝试使用 cdk 实现多项目拖放。
我不知道如何解决选择多个项目并开始拖动时的预览问题。
我已经解决了打字稿中的多项目行为。
我不知道如何修复 html 和 css 中的预览。
<div cdkDropList class="list" (cdkDropListDropped)="drop($event)">
<div
[ngClass]="movie.checked ? 'item-selected' : 'item'"
*ngFor="let movie of (movies$ | async); let i = index"
cdkDrag
(click)="onTouch($event, i)"
>
<div class="item-placeholder" *cdkDragPlaceholder>{{movie.name}}</div>
{{movie.name}}
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
<div cdkDropList class="list" (cdkDropListDropped)="drop($event)">
<div
[ngClass]="movie.checked ? 'item-selected' : 'item'"
*ngFor="let movie of (movies$ | async); let i = index"
cdkDrag
(click)="onTouch($event, i)"
(cdkDragStarted)="dragStarted($event, i)"
>
<div class="item-placeholder" *cdkDragPlaceholder>
<ng-container *ngIf="(selectedMovies$ | async).length > 0 else …Run Code Online (Sandbox Code Playgroud) 我尝试在 Eager 模式下使用 Tensorflow 计算梯度,但 tf.GradientTape () 仅返回 None 值。我不明白为什么。梯度在 update_policy() 函数中计算。
该行的输出:
grads = tape.gradient(loss, self.model.trainable_variables)
Run Code Online (Sandbox Code Playgroud)
是
{list}<class 'list'>:[None, None, ... ,None]
Run Code Online (Sandbox Code Playgroud)
这是代码。
import tensorflow as tf
from keras.backend.tensorflow_backend import set_session
import numpy as np
tf.enable_eager_execution()
print(tf.executing_eagerly())
config = tf.ConfigProto()
config.gpu_options.allow_growth = True
sess = tf.Session(config=config)
set_session(sess)
class PGEagerAtariNetwork:
def __init__(self, state_space, action_space, lr, gamma):
self.state_space = state_space
self.action_space = action_space
self.gamma = gamma
self.model = tf.keras.Sequential()
# Conv
self.model.add(
tf.keras.layers.Conv2D(filters=32, kernel_size=[8, 8], strides=[4, 4], activation='relu',
input_shape=(84, 84, 4,), …Run Code Online (Sandbox Code Playgroud) 我正在尝试为离散动作空间实现软演员评论家算法,但我在损失函数方面遇到了麻烦。
这是来自 SAC 的具有连续动作空间的链接:https : //spinningup.openai.com/en/latest/algorithms/sac.html
我不知道我做错了什么。
问题是网络在cartpole环境中没有学到任何东西。
github上的完整代码:https : //github.com/tk2232/sac_discrete/blob/master/sac_discrete.py
这是我的想法,如何计算离散动作的损失。
class ValueNet:
def __init__(self, sess, state_size, hidden_dim, name):
self.sess = sess
with tf.variable_scope(name):
self.states = tf.placeholder(dtype=tf.float32, shape=[None, state_size], name='value_states')
self.targets = tf.placeholder(dtype=tf.float32, shape=[None, 1], name='value_targets')
x = Dense(units=hidden_dim, activation='relu')(self.states)
x = Dense(units=hidden_dim, activation='relu')(x)
self.values = Dense(units=1, activation=None)(x)
optimizer = tf.train.AdamOptimizer(0.001)
loss = 0.5 * tf.reduce_mean((self.values - tf.stop_gradient(self.targets)) ** 2)
self.train_op = optimizer.minimize(loss, var_list=_params(name))
def get_value(self, s):
return self.sess.run(self.values, feed_dict={self.states: s})
def update(self, s, targets):
self.sess.run(self.train_op, …Run Code Online (Sandbox Code Playgroud)