TFS入门:创建项目与源代码管理

需积分: 3 3 下载量 80 浏览量 更新于2024-07-24 收藏 1.74MB DOCX 举报
本篇文档是一份TFS(Team Foundation Server)入门教程,主要介绍了如何在Windows环境下设置和使用TFS进行项目管理和版本控制。首先,读者需要安装TFS软件,它会在默认集合(称为DefaultCollection)中自动配置。通过Visual Studio的"团队"菜单或起始页的链接,用户可以连接到TFS服务器,例如JLZB2REL。 连接TFS后,可能会遇到问题,如无法将解决方案添加到源代码管理中,这时需要理解TFS中的“项目”与代码解决方案的区别。实际上,用户需要在团队资源管理器中创建一个真实的TFS项目,以容纳所有工作相关的资源,如解决方案、数据等。在创建项目时,可以选择Agile模板或CMMI模板,具体取决于项目管理方法,如敏捷开发(TDD)。 在创建项目过程中,用户会经历一系列状态更新,直到项目成功创建并显示在团队资源管理器中。接下来,可以将解决方案添加到TFS项目下的源代码管理,可以选择新建文件夹或保持默认。一旦添加,所有文件将被标记为源代码管理,并列出可以执行的操作,如检出、提交和查看更改历史。 本教程旨在引导初学者熟悉TFS的基本操作流程,包括服务器连接、项目创建、源代码管理等关键环节,对于刚接触TFS的新手来说,这是一份实用且详细的指南。通过实践这些步骤,用户将能够有效地利用TFS进行团队协作和版本控制,提升项目的组织和管理效率。

class PPO(object): def __init__(self): self.sess = tf.Session() self.tfs = tf.placeholder(tf.float32, [None, S_DIM], 'state') # critic with tf.variable_scope('critic'): l1 = tf.layers.dense(self.tfs, 100, tf.nn.relu) self.v = tf.layers.dense(l1, 1) self.tfdc_r = tf.placeholder(tf.float32, [None, 1], 'discounted_r') self.advantage = self.tfdc_r - self.v self.closs = tf.reduce_mean(tf.square(self.advantage)) self.ctrain_op = tf.train.AdamOptimizer(C_LR).minimize(self.closs) # actor pi, pi_params = self._build_anet('pi', trainable=True) oldpi, oldpi_params = self._build_anet('oldpi', trainable=False) with tf.variable_scope('sample_action'): self.sample_op = tf.squeeze(pi.sample(1), axis=0) # choosing action with tf.variable_scope('update_oldpi'): self.update_oldpi_op = [oldp.assign(p) for p, oldp in zip(pi_params, oldpi_params)] self.tfa = tf.placeholder(tf.float32, [None, A_DIM], 'action') self.tfadv = tf.placeholder(tf.float32, [None, 1], 'advantage') with tf.variable_scope('loss'): with tf.variable_scope('surrogate'): # ratio = tf.exp(pi.log_prob(self.tfa) - oldpi.log_prob(self.tfa)) ratio = pi.prob(self.tfa) / (oldpi.prob(self.tfa) + 1e-5) surr = ratio * self.tfadv if METHOD['name'] == 'kl_pen': self.tflam = tf.placeholder(tf.float32, None, 'lambda') kl = tf.distributions.kl_divergence(oldpi, pi) self.kl_mean = tf.reduce_mean(kl) self.aloss = -(tf.reduce_mean(surr - self.tflam * kl)) else: # clipping method, find this is better self.aloss = -tf.reduce_mean(tf.minimum( surr, tf.clip_by_value(ratio, 1.-METHOD['epsilon'], 1.+METHOD['epsilon'])*self.tfadv))

2023-05-31 上传